コード例 #1
0
 internal override void Encode(
     DerOutputStream derOut)
 {
     lock (this)
     {
         if (encoded == null)
         {
             base.Encode(derOut);
         }
         else
         {
             derOut.WriteEncoded(Asn1Tags.Sequence | Asn1Tags.Constructed, encoded);
         }
     }
 }
コード例 #2
0
 internal override void Encode(
     DerOutputStream derOut)
 {
     derOut.WriteEncoded(Asn1Tags.T61String, GetOctets());
 }
コード例 #3
0
 internal override void Encode(
     DerOutputStream derOut)
 {
     derOut.WriteEncoded(Asn1Tags.UniversalString, this.str);
 }
コード例 #4
0
        /*
         * 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
            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.Set | Asn1Tags.Constructed, bytes);
        }
コード例 #5
0
 internal override void Encode(
     DerOutputStream  derOut)
 {
     derOut.WriteEncoded(Asn1Tags.Null, zeroBytes);
 }
コード例 #6
0
 internal override void Encode(
     DerOutputStream derOut)
 {
     derOut.WriteEncoded(Asn1Tags.GeneralizedTime, GetOctets());
 }
コード例 #7
0
 internal override void Encode(
     DerOutputStream derOut)
 {
     derOut.WriteEncoded(Asn1Tags.Utf8String, Encoding.UTF8.GetBytes(str));
 }
コード例 #8
0
        internal override void Encode(
            DerOutputStream derOut)
        {
            int classBits = Asn1Tags.Application;
            if (isConstructed)
            {
                classBits |= Asn1Tags.Constructed;
            }

            derOut.WriteEncoded(classBits, tag, octets);
        }
コード例 #9
0
 internal override void Encode(
     DerOutputStream derOut)
 {
     derOut.WriteEncoded(Asn1Tags.Enumerated, bytes);
 }
コード例 #10
0
        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());
        }
コード例 #11
0
        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);
        }
コード例 #12
0
 internal override void Encode(
     DerOutputStream derOut)
 {
     derOut.WriteEncoded(Asn1Tags.ObjectIdentifier, GetBody());
 }
コード例 #13
0
 internal override void Encode(
     DerOutputStream derOut)
 {
     derOut.WriteEncoded(Asn1Tags.Integer, bytes);
 }
コード例 #14
0
 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 });
 }