Пример #1
0
        public void KeyMac_created_from_base64()
        {
            var key = new KeyMac(Buffer);

            Assert.Equal(Key.Decode64(), key.Key);
            Assert.Equal(MacKey.Decode64(), key.MacKey);
        }
        public override int Encode(Asn1BerEncodeBuffer buffer, bool explicitTagging)
        {
            var len = 0;

            if (MacKey.Length != 4)
            {
                throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, nameof(MacKey.Length), MacKey.Length);
            }

            len += MacKey.Encode(buffer, true);

            if (MaskKey != null)
            {
                var maskKeyLen = MaskKey.Encode(buffer, false);
                len += maskKeyLen;
                len += buffer.EncodeTagAndLength(0x80, 0, EocTypeCode, maskKeyLen);
            }

            len += EncryptedKey.Encode(buffer, true);

            if (explicitTagging)
            {
                len += buffer.EncodeTagAndLength(Asn1Tag.Sequence, len);
            }

            return(len);
        }