public void DiffieHellmanImpl_Success_Test()
        {
            var alicePrivate = new SecretKey();
            var alicePublic  = alicePrivate.GetPublicKey();

            var bobPrivate = new SecretKey();
            var bobPublic  = bobPrivate.GetPublicKey();

            var aliceShared = alicePrivate.GetSharedSecretKey(peerPublicKey: bobPublic);
            var bobShared   = bobPrivate.GetSharedSecretKey(peerPublicKey: alicePublic);

            Assert.IsTrue(aliceShared.KeyValue.SequenceEqual(bobShared.KeyValue));
        }
        public void DiffieHellmanImpl_Fail_Test()
        {
            var alicePrivate = new SecretKey();
            var alicePublic  = alicePrivate.GetPublicKey();

            var bobPrivate = new SecretKey();
            var bobPublic  = bobPrivate.GetPublicKey();

            alicePublic.KeyValue = alicePublic.KeyValue.ToggleBitInKey();

            var aliceShared = alicePrivate.GetSharedSecretKey(peerPublicKey: bobPublic);
            var bobShared   = bobPrivate.GetSharedSecretKey(peerPublicKey: alicePublic);

            Assert.IsFalse(aliceShared.KeyValue.SequenceEqual(bobShared.KeyValue));
        }