public void ShouldMacCorrectly(int keyLength, int macLength, BitString dkm, BitString nonce, BitString expectedMacData, BitString expectedMac)
        {
            NoKeyConfirmationParameters p =
                new NoKeyConfirmationParameters(KeyAgreementMacType.CmacAes, macLength, dkm, nonce);

            _subject = new NoKeyConfirmationCmac(new NoKeyConfirmationMacDataCreator(), p, _algoFactory.GetCmacInstance(CmacTypes.AES128));
            var result = _subject.ComputeMac();

            Assert.That(result.Success, nameof(result.Success));
            Assert.AreEqual(expectedMacData.ToHex(), result.MacData.ToHex(), nameof(result.MacData));
            Assert.AreEqual(expectedMac.ToHex(), result.Mac.ToHex(), nameof(result.Mac));
        }
Example #2
0
        public void ShouldMacCorrectly(int keyLength, int ccmNonceLength, int macLength, BitString dkm, BitString nonce, BitString ccmNonce, BitString expectedMacData, BitString expectedMac)
        {
            NoKeyConfirmationParameters p =
                new NoKeyConfirmationParameters(KeyAgreementMacType.AesCcm, macLength, dkm, nonce, ccmNonce);

            _subject = new NoKeyConfirmationAesCcm(new NoKeyConfirmationMacDataCreator(), p, _algo);

            var result = _subject.ComputeMac();

            Assert.That(result.Success, nameof(result.Success));
            Assert.AreEqual(expectedMacData.ToHex(), result.MacData.ToHex(), nameof(result.MacData));
            Assert.AreEqual(expectedMac.ToHex(), result.Mac.ToHex(), nameof(result.Mac));
        }
Example #3
0
        public void ShouldReturnCorrectInstance(KeyAgreementMacType macType, Type expectedType)
        {
            NoKeyConfirmationParameters p = null;

            if (macType == KeyAgreementMacType.AesCcm)
            {
                p = new NoKeyConfirmationParameters(macType, 1, new BitString(1), new BitString(1), new BitString(1));
            }
            else
            {
                p = new NoKeyConfirmationParameters(macType, 1, new BitString(1), new BitString(1));
            }

            var result = _subject.GetInstance(p);

            Assert.IsInstanceOf(expectedType, result);
        }
        public void ShouldMacCorrectly(int keyLength, int macLength, KeyAgreementMacType keyAgreementMacType, BitString dkm, BitString nonce, BitString expectedMacData, BitString expectedMac)
        {
            ModeValues  modeValue  = ModeValues.SHA2;
            DigestSizes digestSize = DigestSizes.NONE;

            EnumMapping.GetHashFunctionOptions(keyAgreementMacType, ref modeValue, ref digestSize);

            NoKeyConfirmationParameters p =
                new NoKeyConfirmationParameters(keyAgreementMacType, macLength, dkm, nonce);

            _subject = new NoKeyConfirmationHmac(new NoKeyConfirmationMacDataCreator(), p, _algoFactory.GetHmacInstance(new HashFunction(modeValue, digestSize)));

            var result = _subject.ComputeMac();

            Assert.That(result.Success, nameof(result.Success));
            Assert.AreEqual(expectedMacData.ToHex(), result.MacData.ToHex(), nameof(result.MacData));
            Assert.AreEqual(expectedMac.ToHex(), result.Mac.ToHex(), nameof(result.Mac));
        }