예제 #1
0
        public void RatchetReferenceTest(byte[] nrk, byte[] rhk, byte[] nrhk, byte[] rck, byte[] shk, byte[] nshk, byte[] sck, byte[] _key, byte[] rpk, byte[] erck)
        {
            var key   = new KeyAgreement(_key);
            var step0 = EcdhRatchetStep.Create(key, nrk,
                                               0, rhk, nrhk, rck,
                                               0, shk, nshk, sck);

            var step1 = step0.Ratchet(kdf, digest, rpk, new KeyAgreement(KeyGeneration.GeneratePrivateKey()));

            Assert.Equal(erck, step1.ReceivingChain.ChainKey);
        }
예제 #2
0
        public void RatchetReferenceTest2(byte[] nrk, byte[] rhk, byte[] nrhk, byte[] rck, byte[] shk, byte[] nshk, byte[] sck, byte[] _key, byte[] rpk, byte[] _nkey, byte[] esck)
        {
            var key   = new KeyAgreement(_key);
            var nkey  = new KeyAgreement(_nkey);
            var step0 = EcdhRatchetStep.Create(key, nrk,
                                               0, rhk, nrhk, rck,
                                               0, shk, nshk, sck);

            var step1 = step0.Ratchet(kdf, digest, rpk, nkey);

            Assert.Equal(esck, step1.SendingChain.ChainKey);
        }