internal static void Decode(AsnReader reader, out Asn1Change decoded) { if (reader == null) { throw new ArgumentNullException(nameof(reader)); } Decode(reader, Asn1Tag.Sequence, out decoded); }
internal static void Decode(AsnReader reader, Asn1Tag expectedTag, out Asn1Change decoded) { if (reader == null) { throw new ArgumentNullException(nameof(reader)); } decoded = new Asn1Change(); AsnReader sequenceReader = reader.ReadSequence(expectedTag); decoded.Operation = sequenceReader.GetEnumeratedValue <ChangeOperation>(); Asn1PartialAttribute.Decode(sequenceReader, out decoded.Modification); sequenceReader.ThrowIfNotEmpty(); }
internal static void Decode(AsnReader reader, Asn1Tag expectedTag, out Asn1ModifyRequest decoded) { if (reader == null) { throw new ArgumentNullException(nameof(reader)); } decoded = new Asn1ModifyRequest(); AsnReader sequenceReader = reader.ReadSequence(expectedTag); AsnReader collectionReader; if (sequenceReader.TryGetPrimitiveOctetStringBytes(out ReadOnlyMemory <byte> tmpObject)) { decoded.Object = tmpObject; } else { decoded.Object = sequenceReader.ReadOctetString(); } // Decode SEQUENCE OF for Changes { collectionReader = sequenceReader.ReadSequence(); var tmpList = new List <Asn1Change>(); Asn1Change tmpItem; while (collectionReader.HasData) { Asn1Change.Decode(collectionReader, out tmpItem); tmpList.Add(tmpItem); } decoded.Changes = tmpList.ToArray(); } sequenceReader.ThrowIfNotEmpty(); }