상속: BraintreeEncryption.Library.BouncyCastle.Asn1.Util.FilterStream
        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);
            }
        }
        public byte[] GetEncoded(
			string encoding)
        {
            if (encoding.Equals(Der))
            {
                MemoryStream bOut = new MemoryStream();
                DerOutputStream dOut = new DerOutputStream(bOut);

                dOut.WriteObject(this);

                return bOut.ToArray();
            }

            return GetEncoded();
        }
        internal override void Encode(
			DerOutputStream derOut)
        {
            lock (this)
            {
                if (parsed)
                {
                    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)
        {
            // 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.Close();

            byte[] bytes = bOut.ToArray();

            derOut.WriteEncoded(Asn1Tags.Sequence | Asn1Tags.Constructed, bytes);
        }
        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)
        {
            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());
        }
        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(isConstructed ? Asn1Tags.Constructed : 0, tag, data);
 }
 internal abstract void Encode(DerOutputStream derOut);
        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)
 {
     // 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(Asn1Tags.UtcTime, GetOctets());
 }
예제 #13
0
 internal override void Encode(
     DerOutputStream derOut)
 {
     derOut.WriteEncoded(Asn1Tags.UniversalString, this.str);
 }
예제 #14
0
 internal override void Encode(
     DerOutputStream derOut)
 {
     derOut.WriteEncoded(Asn1Tags.Enumerated, bytes);
 }
예제 #15
0
 internal override void Encode(
     DerOutputStream derOut)
 {
     derOut.WriteEncoded(Asn1Tags.GeneralizedTime, 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.Utf8String, Encoding.UTF8.GetBytes(str));
        }
 internal override void Encode(
     DerOutputStream derOut)
 {
     derOut.WriteEncoded(Asn1Tags.Integer, bytes);
 }
 internal override void Encode(
     DerOutputStream derOut)
 {
     derOut.WriteEncoded(Asn1Tags.Utf8String, Encoding.UTF8.GetBytes(str));
 }
예제 #20
0
 internal abstract void Encode(DerOutputStream derOut);
 internal override void Encode(
     DerOutputStream derOut)
 {
     derOut.WriteEncoded(Asn1Tags.PrintableString, GetOctets());
 }
        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)
        {
            derOut.WriteEncoded(Asn1Tags.Null, zeroBytes);
        }
 internal override void Encode(
     DerOutputStream derOut)
 {
     derOut.WriteEncoded(Asn1Tags.NumericString, GetOctets());
 }
 internal override void Encode(
     DerOutputStream derOut)
 {
     derOut.WriteEncoded(Asn1Tags.Enumerated, bytes);
 }