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)); }
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); }