Beispiel #1
0
        public override int Encode()
        {
            int len = 0;

            // first need to encode keys into bitstring
            keys.Encode();
            publicKey.value = keys.derValue;

            len += algorithm.Encode();
            len += publicKey.Encode();

            byte[] lengthBytes = EncodeLength(len);

            derValue    = new byte[1 + lengthBytes.Length + len];
            derValue[0] = 0x30; // sequence
            int d = 1;

            Array.Copy(lengthBytes, 0, derValue, d, lengthBytes.Length);
            d += lengthBytes.Length;
            Array.Copy(algorithm.derValue, 0, derValue, d, algorithm.derValue.Length);
            d += algorithm.derValue.Length;
            Array.Copy(publicKey.derValue, 0, derValue, d, publicKey.derValue.Length);

            PrependContextTag();

            return(derValue.Length);
        }