internal override void Encode( DerOutputStream derOut) { if (parsed) { base.Encode(derOut); } else { derOut.WriteEncoded(Asn1Tags.Set | Asn1Tags.Constructed, encoded); } }
internal override void Encode( DerOutputStream derOut) { if (derOut is Asn1OutputStream || derOut is BerOutputStream) { derOut.WriteEncoded(Asn1Tags.BitString, (byte)mPadBits, mData); } else { base.Encode(derOut); } }
internal override void Encode( DerOutputStream derOut) { lock (this) { if (encoded == null) { base.Encode(derOut); } else { derOut.WriteEncoded(Asn1Tags.Sequence | Asn1Tags.Constructed, encoded); } } }
/* * A note on the implementation: * <p> * As Der requires the constructed, definite-length model to * be used for structured types, this varies slightly from the * ASN.1 descriptions given. Rather than just outputing Sequence, * we also have to specify Constructed, and the objects length. */ internal override void Encode( DerOutputStream derOut) { MemoryStream bOut = new MemoryStream(); DerOutputStream dOut = new DerOutputStream(bOut); foreach (object obj in this) { dOut.WriteObject(obj); } dOut.Close(); byte[] bytes = bOut.ToArray(); derOut.WriteEncoded(Asn1Tags.Sequence | Asn1Tags.Constructed, bytes); }
/* * A note on the implementation: * <p> * As Der requires the constructed, definite-length model to * be used for structured types, this varies slightly from the * ASN.1 descriptions given. Rather than just outputing Sequence, * we also have to specify Constructed, and the objects length. */ internal override void Encode( DerOutputStream derOut) { // TODO Intermediate buffer could be avoided if we could calculate expected length MemoryStream bOut = new MemoryStream(); DerOutputStream dOut = new DerOutputStream(bOut); foreach (Asn1Encodable obj in this) { dOut.WriteObject(obj); } dOut.Dispose(); byte[] bytes = bOut.ToArray(); derOut.WriteEncoded(Asn1Tags.Sequence | Asn1Tags.Constructed, bytes); }
internal override void Encode( DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.UtcTime, GetOctets()); }
internal override void Encode( DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.Enumerated, bytes); }
internal override void Encode(DerOutputStream derOut) { derOut.WriteEncoded(0x19, this.mString); }
internal override void Encode(DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.Integer, bytes); }
internal static void Encode(DerOutputStream derOut, byte[] bytes, int offset, int length) { derOut.WriteEncoded(4, bytes, offset, length); }
internal override void Encode( DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.Null, zeroBytes); }
internal override void Encode(DerOutputStream derOut) { derOut.WriteEncoded(2, this.bytes); }
internal override void Encode(DerOutputStream derOut) { derOut.WriteEncoded(12, Encoding.UTF8.GetBytes(this.str)); }
internal override void Encode( DerOutputStream derOut) { if (mPadBits > 0) { int last = mData[mData.Length - 1]; int mask = (1 << mPadBits) - 1; int unusedBits = last & mask; if (unusedBits != 0) { byte[] contents = Arrays.Prepend(mData, (byte)mPadBits); /* * X.690-0207 11.2.1: Each unused bit in the final octet of the encoding of a bit string value shall be set to zero. */ contents[contents.Length - 1] = (byte)(last ^ unusedBits); derOut.WriteEncoded(Asn1Tags.BitString, contents); return; } } derOut.WriteEncoded(Asn1Tags.BitString, (byte)mPadBits, mData); }
internal override void Encode( DerOutputStream derOut) { derOut.WriteEncoded(tag, data); }
internal override void Encode(DerOutputStream derOut) { derOut.WriteEncoded(0x1c, this.str); }
internal override void Encode( DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.Application | tag, octets); }
internal override void Encode(DerOutputStream derOut) { derOut.WriteEncoded(1, new byte[1] { value }); }
internal override void Encode( DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.Utf8String, Encoding.UTF8.GetBytes(str)); }
internal override void Encode( DerOutputStream derOut) { derOut.WriteEncoded(isConstructed ? Asn1Tags.Constructed : 0, tag, data); }
internal override void Encode( DerOutputStream derOut) { byte[] bytes = new byte[GetBytes().Length + 1]; bytes[0] = (byte) PadBits; Array.Copy(GetBytes(), 0, bytes, 1, bytes.Length - 1); derOut.WriteEncoded(Asn1Tags.BitString, bytes); }
internal override void Encode(DerOutputStream derOut) { derOut.WriteEncoded(28, str); }
internal override void Encode( DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.UniversalString, this.str); }
internal override void Encode( DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.ObjectIdentifier, GetBody()); }
internal override void Encode(DerOutputStream derOut) { derOut.WriteEncoded(12, Encoding.get_UTF8().GetBytes(str)); }
internal override void Encode( DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.OctetString, str); }
internal override void Encode( DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.Integer, bytes); }
internal override void Encode( DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.NumericString, GetOctets()); }
internal override void Encode( DerOutputStream derOut) { OidTokenizer tok = new OidTokenizer(identifier); MemoryStream bOut = new MemoryStream(); DerOutputStream dOut = new DerOutputStream(bOut); string token = tok.NextToken(); int first = int.Parse(token); token = tok.NextToken(); int second = int.Parse(token); WriteField(bOut, first * 40 + second); while (tok.HasMoreTokens) { token = tok.NextToken(); if (token.Length < 18) { WriteField(bOut, Int64.Parse(token)); } else { WriteField(bOut, new BigInteger(token)); } } dOut.Close(); derOut.WriteEncoded(Asn1Tags.ObjectIdentifier, bOut.ToArray()); }
internal override void Encode(DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.GraphicString, mString); }
internal override void Encode(DerOutputStream derOut) { MemoryStream ms = new MemoryStream(); WriteEncodable(ms, directReference); WriteEncodable(ms, indirectReference); WriteEncodable(ms, dataValueDescriptor); WriteEncodable(ms, new DerTaggedObject(Asn1Tags.External, externalContent)); derOut.WriteEncoded(Asn1Tags.Constructed, Asn1Tags.External, ms.ToArray()); }
/* * A note on the implementation: * <p> * As Der requires the constructed, definite-length model to * be used for structured types, this varies slightly from the * ASN.1 descriptions given. Rather than just outputing Set, * we also have to specify Constructed, and the objects length. */ internal override void Encode(DerOutputStream derOut) { // TODO Intermediate buffer could be avoided if we could calculate expected length using (var bOut = new MemoryStream()) { using (var dOut = new DerOutputStream(bOut)) { foreach (Asn1Encodable obj in this) { dOut.WriteObject(obj); } } var bytes = bOut.ToArray(); derOut.WriteEncoded(Asn1Tags.Set | Asn1Tags.Constructed, bytes); } }
internal override void Encode( DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.GeneralString, this.GetOctets()); }
internal override void Encode( DerOutputStream derOut) { char[] c = str.ToCharArray(); byte[] b = new byte[c.Length * 2]; for (int i = 0; i != c.Length; i++) { b[2 * i] = (byte)(c[i] >> 8); b[2 * i + 1] = (byte)c[i]; } derOut.WriteEncoded(Asn1Tags.BmpString, b); }
internal override void Encode(DerOutputStream derOut) { derOut.WriteEncoded(25, mString); }
internal override void Encode(DerOutputStream derOut) { derOut.WriteEncoded(6, GetBody()); }
internal override void Encode( DerOutputStream derOut) { // TODO Should we make sure the byte value is one of '0' or '0xff' here? derOut.WriteEncoded(Asn1Tags.Boolean, new byte[]{ value }); }
internal override void Encode(DerOutputStream derOut) { derOut.WriteEncoded(5, zeroBytes); }
internal override void Encode(DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.VideotexString, mString); }
internal override void Encode(DerOutputStream derOut) { byte[] bytes = new byte[] { this.value }; derOut.WriteEncoded(1, bytes); }
internal override void Encode( DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.GeneralizedTime, GetOctets()); }
internal override void Encode( DerOutputStream derOut) { // TODO Should we make sure the byte value is one of '0' or '0xff' here? derOut.WriteEncoded(Asn1Tags.Boolean, new byte[] { value }); }
internal override void Encode( DerOutputStream derOut) { int classBits = Asn1Tags.Application; if (isConstructed) { classBits |= Asn1Tags.Constructed; } derOut.WriteEncoded(classBits, tag, octets); }
internal override void Encode(DerOutputStream derOut) { derOut.WriteEncoded(27, this.GetOctets()); }
internal override void Encode( DerOutputStream derOut) { derOut.WriteEncoded(Asn1Tags.T61String, GetOctets()); }