コード例 #1
0
        public void DecryptAes256Ctr_decrypts_one_block()
        {
            var ciphertext = NistCiphertext.Take(16).ToArray();
            var plaintext  = NistPlaintext.Take(16).ToArray();

            Assert.Equal(plaintext, Util.DecryptAes256Ctr(ciphertext, NistKey, NistCtr));
        }
コード例 #2
0
        public void ComputeAesCtrKey_returns_key()
        {
            // Calculated with the original Js code
            var ctrKey = "1fad494b86d62e89f945e8cfb9925e341fad494b86d62e89f945e8cfb9925e34".DecodeHex();

            Assert.Equal(ctrKey, Util.ComputeAesCtrKey(TestData.Key));
        }
コード例 #3
0
        public void IncrementCounter_adds_one(string initial, string expected)
        {
            var counter = initial.DecodeHex();

            Util.IncrementCounter(counter);
            Assert.Equal(expected.DecodeHex(), counter);
        }
コード例 #4
0
        public void Decrypt_returns_plaintext()
        {
            // Calculated with the original Js code
            var plaintext = Util.Decrypt(
                "awNZM8agxVecKpRoC821Oq6NlvVwm6KpPGW+cLdzRoc2Mg5vqPQzoONwww==".Decode64(),
                TestData.Key).ToUtf8();

            Assert.Equal("{\"date\":\"2016-08-30T15:05:42.874Z\"}", plaintext);
        }
コード例 #5
0
        public void ComputeKey_returns_key()
        {
            var key = Util.ComputeKey(
                TestData.Passphrase,
                "f78e6ffce8e57501a02c9be303db2c68".ToBytes(),
                1000);

            Assert.Equal(TestData.Key, key);
        }
コード例 #6
0
        public void DecryptAes256Ctr_decrypts_unaligned_input()
        {
            for (var i = 1; i < NistCiphertext.Length - 1; i += 1)
            {
                var ciphertext = NistCiphertext.Take(i).ToArray();
                var plaintext  = NistPlaintext.Take(i).ToArray();

                Assert.Equal(plaintext, Util.DecryptAes256Ctr(ciphertext, NistKey, NistCtr));
            }
        }
コード例 #7
0
 public void DecryptAes256Ctr_decrypts_empty_input()
 {
     Assert.Equal(new byte[0], Util.DecryptAes256Ctr(new byte[0], NistKey, NistCtr));
 }
コード例 #8
0
 public void DecryptAes256Ctr_decrypts_multiple_blocks()
 {
     Assert.Equal(NistPlaintext, Util.DecryptAes256Ctr(NistCiphertext, NistKey, NistCtr));
 }