Example #1
0
        public void ReferenceData(
            string nonce,
            string associatedData,
            string plainText,
            string cipherText,
            string tag)
        {
            var aesOcb = new AesOcb(Convert.FromHexString("000102030405060708090A0B0C0D0E0F"));

            byte[] plainTextBytes  = Convert.FromHexString(plainText);
            byte[] cipherTextBytes = new byte[plainTextBytes.Length];
            byte[] tagBytes        = new byte[16];

            aesOcb.Encrypt(
                Convert.FromHexString(nonce),
                plainTextBytes,
                cipherTextBytes,
                tagBytes,
                Convert.FromHexString(associatedData));

            Assert.AreEqual(cipherText, Convert.ToHexString(cipherTextBytes));
            Assert.AreEqual(tag, Convert.ToHexString(tagBytes));

            cipherTextBytes = Convert.FromHexString(cipherText);
            plainTextBytes  = new byte[cipherTextBytes.Length];
            aesOcb.Decrypt(
                Convert.FromHexString(nonce),
                cipherTextBytes,
                Convert.FromHexString(tag),
                plainTextBytes,
                Convert.FromHexString(associatedData));

            Assert.AreEqual(plainText, Convert.ToHexString(plainTextBytes));
        }