public void OriginalSharedSecretShouldBeModified()
        {
            var kdfFactory     = new KdfOneStepFactory(new NativeShaFactory(), new HmacFactory(new NativeShaFactory()), new KmacFactory(new CSHAKEWrapper()));
            var fakeKdfFactory = new FakeKdfFactory_BadZ(kdfFactory);

            var originalZ = new BitString("01");
            var copyZ     = originalZ.GetDeepCopy();

            Assert.AreEqual(copyZ, originalZ, "sanity check");

            var badKdf = fakeKdfFactory.GetInstance(KdaOneStepAuxFunction.SHA2_D256, true);

            badKdf.DeriveKey(originalZ, 256, new BitString(256), null);

            Assert.AreNotEqual(copyZ, originalZ, nameof(copyZ));
        }
Example #2
0
        public void Setup()
        {
            _sha  = new Mock <ISha>();
            _hmac = new Mock <IHmac>();
            _kmac = new Mock <IKmac>();

            _shaFactory = new Mock <IShaFactory>();
            _shaFactory
            .Setup(s => s.GetShaInstance(It.IsAny <HashFunction>()))
            .Returns(_sha.Object);

            _hmacFactory = new Mock <IHmacFactory>();
            _hmacFactory
            .Setup(s => s.GetHmacInstance(It.IsAny <HashFunction>()))
            .Returns(_hmac.Object);

            _kmacFactory = new Mock <IKmacFactory>();
            _kmacFactory
            .Setup(s => s.GetKmacInstance(It.IsAny <int>(), It.IsAny <bool>()))
            .Returns(_kmac.Object);

            _subject = new KdfOneStepFactory(_shaFactory.Object, _hmacFactory.Object, _kmacFactory.Object);
        }