internal override void Encode( DerOutputStream derOut) { if (derOut is Asn1OutputStream || derOut is BerOutputStream) { derOut.WriteByte(Asn1Tags.Constructed | Asn1Tags.OctetString); derOut.WriteByte(0x80); // // write out the octet array // foreach (DerOctetString oct in this) { derOut.WriteObject(oct); } derOut.WriteByte(0x00); derOut.WriteByte(0x00); } else { base.Encode(derOut); } }
internal override void Encode( DerOutputStream derOut) { if (derOut is Asn1OutputStream || derOut is BerOutputStream) { derOut.WriteTag((byte)(Asn1Tags.Constructed | Asn1Tags.Tagged), tagNo); derOut.WriteByte(0x80); if (!IsEmpty()) { if (!explicitly) { IEnumerable eObj; if (obj is Asn1OctetString) { if (obj is BerOctetString) { eObj = (BerOctetString)obj; } else { Asn1OctetString octs = (Asn1OctetString)obj; eObj = new BerOctetString(octs.GetOctets()); } } else if (obj is Asn1Sequence) { eObj = (Asn1Sequence)obj; } else if (obj is Asn1Set) { eObj = (Asn1Set)obj; } else { throw Platform.CreateNotImplementedException(obj.GetType().Name); } foreach (Asn1Encodable o in eObj) { derOut.WriteObject(o); } } else { derOut.WriteObject(obj); } } derOut.WriteByte(0x00); derOut.WriteByte(0x00); } else { base.Encode(derOut); } }
internal override void Encode( DerOutputStream derOut) { if (derOut is Asn1OutputStream || derOut is BerOutputStream) { derOut.WriteByte(Asn1Tags.Null); } else { base.Encode(derOut); } }