summaryrefslogtreecommitdiff
path: root/TestVectors
diff options
context:
space:
mode:
authorweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2009-03-02 02:39:17 +0000
committerweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2009-03-02 02:39:17 +0000
commitcaf9e032e6b4ccb114a74a3936c916bcfaba262d (patch)
tree0fecaa7a6728d07549a41864ea2cedfb245f0bd3 /TestVectors
parent4e4793cc591e26c788b53c487bee7cab2d377f5e (diff)
downloadcryptopp-caf9e032e6b4ccb114a74a3936c916bcfaba262d.tar.gz
changes for 5.6:
- added AuthenticatedSymmetricCipher interface class and Filter wrappers - added CCM, GCM (with SSE2 assembly), CMAC, and SEED - improved AES speed on x86 and x64 - removed WORD64_AVAILABLE; compiler 64-bit int support is now required git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@433 57ff6487-cd31-0410-9ec3-f628ee90f5f0
Diffstat (limited to 'TestVectors')
-rwxr-xr-xTestVectors/aes.txt86
-rw-r--r--TestVectors/all.txt3
-rw-r--r--TestVectors/ccm.txt240
-rw-r--r--TestVectors/cmac.txt38
-rw-r--r--TestVectors/gcm.txt139
-rw-r--r--TestVectors/hmac.txt54
-rwxr-xr-xTestVectors/panama.txt16
-rw-r--r--TestVectors/seed.txt19
-rw-r--r--TestVectors/ttmac.txt18
-rwxr-xr-xTestVectors/vmac.txt48
10 files changed, 593 insertions, 68 deletions
diff --git a/TestVectors/aes.txt b/TestVectors/aes.txt
index 9fb5a97..0012629 100755
--- a/TestVectors/aes.txt
+++ b/TestVectors/aes.txt
@@ -34,6 +34,34 @@ Ciphertext: f58c4c04d6e5f1ba779eabfb5f7bfbd6 9cfc4e967edb808d679f777bc6702c7d 39
Test: Encrypt
AlgorithmType: SymmetricCipher
+Name: AES/CBC
+Source: RFC 3602
+Comment: Case 1: Encrypting 16 bytes (1 block) using AES-CBC with 128-bit key
+Key : 0x06a9214036b8a15b512e03d534120006
+IV : 0x3dafba429d9eb430b422da802c9fac41
+Plaintext : "Single block msg"
+Ciphertext: 0xe353779c1079aeb82708942dbe77181a
+Test: Encrypt
+Comment: Case 2: Encrypting 32 bytes (2 blocks) using AES-CBC with 128-bit key
+Key : 0xc286696d887c9aa0611bbb3e2025a45a
+IV : 0x562e17996d093d28ddb3ba695a2e6f58
+Plaintext : 0x000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f
+Ciphertext: 0xd296cd94c2cccf8a3a863028b5e1dc0a 7586602d253cfff91b8266bea6d61ab1
+Test: Encrypt
+Comment: Case 3: Encrypting 48 bytes (3 blocks) using AES-CBC with 128-bit key
+Key : 0x6c3ea0477630ce21a2ce334aa746c2cd
+IV : 0xc782dc4c098c66cbd9cd27d825682c81
+Plaintext : "This is a 48-byte message (exactly 3 AES blocks)"
+Ciphertext: 0xd0a02b3836451753d493665d33f0e886 2dea54cdb293abc7506939276772f8d5 021c19216bad525c8579695d83ba2684
+Test: Encrypt
+Comment: Case 4: Encrypting 64 bytes (4 blocks) using AES-CBC with 128-bit key
+Key : 0x56e47a38c5598974bc46903dba290349
+IV : 0x8ce82eefbea0da3c44699ed7db51b7d9
+Plaintext : 0xa0a1a2a3a4a5a6a7a8a9aaabacadaeaf b0b1b2b3b4b5b6b7b8b9babbbcbdbebf c0c1c2c3c4c5c6c7c8c9cacbcccdcecf d0d1d2d3d4d5d6d7d8d9dadbdcdddedf
+Ciphertext: 0xc30e32ffedc0774e6aff6af0869f71aa 0f3af07a9a31a9c684db207eb0ef8e4e 35907aa632c3ffdf868bb7b29d3d46ad 83ce9f9a102ee99d49a53e87f4c3da55
+Test: Encrypt
+
+AlgorithmType: SymmetricCipher
Name: AES/CFB
Source: NIST Special Publication 800-38A
IV: 000102030405060708090a0b0c0d0e0f
@@ -101,3 +129,61 @@ Comment: F.5.5 CTR-AES256.Encrypt
Key: 603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4
Ciphertext: 601ec313775789a5b7a7f504bbf3d228 f443e3ca4d62b59aca84e990cacaf5c5 2b0930daa23de94ce87017ba2d84988d dfc9c58db67aada613c2dd08457941a6
Test: Encrypt
+
+AlgorithmType: SymmetricCipher
+Name: AES/CTR
+Source: RFC 3686
+#Test Vector #1: Encrypting 16 octets using AES-CTR with 128-bit key
+Key : AE 68 52 F8 12 10 67 CC 4B F7 A5 76 55 77 F3 9E
+Plaintext : 53 69 6E 67 6C 65 20 62 6C 6F 63 6B 20 6D 73 67
+IV: 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 01
+Ciphertext : E4 09 5D 4F B7 A7 B3 79 2D 61 75 A3 26 13 11 B8
+Test: Encrypt
+#Test Vector #2: Encrypting 32 octets using AES-CTR with 128-bit key
+Key : 7E 24 06 78 17 FA E0 D7 43 D6 CE 1F 32 53 91 63
+Plaintext : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
+IV: 00 6C B6 DB C0 54 3B 59 DA 48 D9 0B 00 00 00 01
+Ciphertext : 51 04 A1 06 16 8A 72 D9 79 0D 41 EE 8E DA D3 88 EB 2E 1E FC 46 DA 57 C8 FC E6 30 DF 91 41 BE 28
+Test: Encrypt
+#Test Vector #3: Encrypting 36 octets using AES-CTR with 128-bit key
+Key : 76 91 BE 03 5E 50 20 A8 AC 6E 61 85 29 F9 A0 DC
+Plaintext : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23
+IV: 00 E0 01 7B 27 77 7F 3F 4A 17 86 F0 00 00 00 01
+Ciphertext : C1 CF 48 A8 9F 2F FD D9 CF 46 52 E9 EF DB 72 D7 45 40 A4 2B DE 6D 78 36 D5 9A 5C EA AE F3 10 53 25 B2 07 2F
+Test: Encrypt
+#Test Vector #4: Encrypting 16 octets using AES-CTR with 192-bit key
+Key : 16 AF 5B 14 5F C9 F5 79 C1 75 F9 3E 3B FB 0E ED 86 3D 06 CC FD B7 85 15
+Plaintext : 53 69 6E 67 6C 65 20 62 6C 6F 63 6B 20 6D 73 67
+IV: 00 00 00 48 36 73 3C 14 7D 6D 93 CB 00 00 00 01
+Ciphertext : 4B 55 38 4F E2 59 C9 C8 4E 79 35 A0 03 CB E9 28
+Test: Encrypt
+#Test Vector #5: Encrypting 32 octets using AES-CTR with 192-bit key
+Key : 7C 5C B2 40 1B 3D C3 3C 19 E7 34 08 19 E0 F6 9C 67 8C 3D B8 E6 F6 A9 1A
+Plaintext : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
+IV: 00 96 B0 3B 02 0C 6E AD C2 CB 50 0D 00 00 00 01
+Ciphertext : 45 32 43 FC 60 9B 23 32 7E DF AA FA 71 31 CD 9F 84 90 70 1C 5A D4 A7 9C FC 1F E0 FF 42 F4 FB 00
+Test: Encrypt
+#Test Vector #6: Encrypting 36 octets using AES-CTR with 192-bit key
+Key : 02 BF 39 1E E8 EC B1 59 B9 59 61 7B 09 65 27 9B F5 9B 60 A7 86 D3 E0 FE
+Plaintext : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23
+IV: 00 07 BD FD 5C BD 60 27 8D CC 09 12 00 00 00 01
+Ciphertext : 96 89 3F C5 5E 5C 72 2F 54 0B 7D D1 DD F7 E7 58 D2 88 BC 95 C6 91 65 88 45 36 C8 11 66 2F 21 88 AB EE 09 35
+Test: Encrypt
+#Test Vector #7: Encrypting 16 octets using AES-CTR with 256-bit key
+Key : 77 6B EF F2 85 1D B0 6F 4C 8A 05 42 C8 69 6F 6C 6A 81 AF 1E EC 96 B4 D3 7F C1 D6 89 E6 C1 C1 04
+Plaintext : 53 69 6E 67 6C 65 20 62 6C 6F 63 6B 20 6D 73 67
+IV: 00 00 00 60 DB 56 72 C9 7A A8 F0 B2 00 00 00 01
+Ciphertext : 14 5A D0 1D BF 82 4E C7 56 08 63 DC 71 E3 E0 C0
+Test: Encrypt
+#Test Vector #8: Encrypting 32 octets using AES-CTR with 256-bit key
+Key : F6 D6 6D 6B D5 2D 59 BB 07 96 36 58 79 EF F8 86 C6 6D D5 1A 5B 6A 99 74 4B 50 59 0C 87 A2 38 84
+Plaintext : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
+IV: 00 FA AC 24 C1 58 5E F1 5A 43 D8 75 00 00 00 01
+Ciphertext : F0 5E 23 1B 38 94 61 2C 49 EE 00 0B 80 4E B2 A9 B8 30 6B 50 8F 83 9D 6A 55 30 83 1D 93 44 AF 1C
+Test: Encrypt
+#Test Vector #9: Encrypting 36 octets using AES-CTR with 256-bit key
+Key : FF 7A 61 7C E6 91 48 E4 F1 72 6E 2F 43 58 1D E2 AA 62 D9 F8 05 53 2E DF F1 EE D6 87 FB 54 15 3D
+Plaintext : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23
+IV: 00 1C C5 B7 51 A5 1D 70 A1 C1 11 48 00 00 00 01
+Ciphertext : EB 6C 52 82 1D 0B BB F7 CE 75 94 46 2A CA 4F AA B4 07 DF 86 65 69 FD 07 F4 8C C0 B5 83 D6 07 1F 1E C0 E6 B8
+Test: Encrypt
diff --git a/TestVectors/all.txt b/TestVectors/all.txt
index b98ac90..f26df0d 100644
--- a/TestVectors/all.txt
+++ b/TestVectors/all.txt
@@ -22,3 +22,6 @@ Test: aes.txt
Test: salsa.txt
Test: vmac.txt
Test: sosemanuk.txt
+Test: ccm.txt
+Test: gcm.txt
+Test: cmac.txt
diff --git a/TestVectors/ccm.txt b/TestVectors/ccm.txt
new file mode 100644
index 0000000..f23f084
--- /dev/null
+++ b/TestVectors/ccm.txt
@@ -0,0 +1,240 @@
+AlgorithmType: AuthenticatedSymmetricCipher
+Name: AES/CCM
+Source: aes-modes-src-07-10-08/Testvals/ccm.1, Basic Tests for CCM (compiled by B. R. Gladman)
+Key: 404142434445464748494a4b4c4d4e4f
+IV: 10111213141516
+Header: 0001020304050607
+Plaintext: 20212223
+Ciphertext: 7162015b
+MAC: 4dac255d
+Test: Encrypt
+Key: 404142434445464748494a4b4c4d4e4f
+IV: 1011121314151617
+Header: 000102030405060708090a0b0c0d0e0f
+Plaintext: 202122232425262728292a2b2c2d2e2f
+Ciphertext: d2a1f0e051ea5f62081a7792073d593d
+MAC: 1fc64fbfaccd
+Test: Encrypt
+Key: 404142434445464748494a4b4c4d4e4f
+IV: 101112131415161718191a1b
+Header: 000102030405060708090a0b0c0d0e0f10111213
+Plaintext: 202122232425262728292a2b2c2d2e2f3031323334353637
+Ciphertext: e3b201a9f5b71a7a9b1ceaeccd97e70b6176aad9a4428aa5
+MAC: 484392fbc1b09951
+Test: Encrypt
+Key: 404142434445464748494a4b4c4d4e4f
+IV: 101112131415161718191a1b1c
+Header: r256 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
+Plaintext: 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+Ciphertext: 69915dad1e84c6376a68c2967e4dab615ae0fd1faec44cc484828529463ccf72
+MAC: b4ac6bec93e8598e7f0dadbcea5b
+Test: Encrypt
+Key: c97c1f67ce371185514a8a19f2bdd52f
+IV: 005030f1844408b5039776e70c
+Header: 08400fd2e128a57c5030f1844408abaea5b8fcba0000
+Plaintext: f8ba1a55d02f85ae967bb62fb6cda8eb7e78a050
+Ciphertext: f3d0a2fe9a3dbf2342a643e43246e80c3c04d019
+MAC: 7845ce0b16f97623
+Test: Encrypt
+Key: 8f7a053fa577a5597529272097a603d5
+IV: 00eec1762c88de31f3cbba97ea
+Header: 08c0ea100c846850eec1762c88deaf2ee9f46a070000
+Plaintext: 83a0634b5ed7627eb9df225e05740342de194117
+Ciphertext: 814b6965d05bf2b2ed38d4beb069fe82714a610b
+MAC: 542fbf8da06aa4ae
+Test: Encrypt
+Key: 40cfb7a62e88013bd6d3affcc191041e
+IV: 00b6a88adf36912fdca0f3a5ae
+Header: 88c0d9577df763c8b6a88adf3691dc4a8bca94dd00000000
+Plaintext: 2c1bd036831c95496c5f4dbf3d559e72de802a18
+Ciphertext: 89d8580340b626a0b6d4d013bf18f291b89646c8
+MAC: fd1f1f61a9fb4bb3
+Test: Encrypt
+Key: 8c89a2ebc96c7602707fcf24b32d3833
+IV: 078ef822734701f670a55a0fe3
+Header: 88c2712a9ddf11db8ef82273470159140dd646a200000700
+Plaintext: 4fad2b1c290fa5ebd872fbc3f3a074898f8b2fbb
+Ciphertext: 9d59b15f371448c230f4d739052e13ab3b1a7b10
+MAC: 31fc88004f35ee3d
+Test: Encrypt
+Key: a574d5143bb25efddeff30122fdfd066
+IV: 0bf351946bc96ba7ffe03c0e37
+Header: 88c245dec69a7480f351946bc96be276fbe6c12700000b00
+Plaintext: 28969b954f263a8018a9ef70a8b051462481922e
+Ciphertext: eb4ae4956a801da9624b7e0c18b23e615ec03af6
+MAC: ce0c3be197d305eb
+Test: Encrypt
+Key: f71eea4e1f58804b9717230ad0614641
+IV: 0dbff943b9f9a66b81eca48989
+Header: 88425af28430fdabbff943b9f9a6ab1d98c7fe7300000d00
+Plaintext: abfda22d3a0bfc9cc1fc079363c2fca143e6eb1d
+Ciphertext: 9a709b60a39d40b1dfb612e18b5f114badb6cc86
+MAC: 309a8d5c466bbb71
+Test: Encrypt
+Key: 1bdb34980e038124a1db1a892bec366a
+IV: 00efec952016915eec4073e723
+Header: 08419b50f4fd56f6efec9520169183570c4ccdee0000
+Plaintext: 98beca86f4b38da20cfdf24724c58eb835665339
+Ciphertext: 12c537ebf3ab584ef1fef9a1f3547a8c13b3225a
+MAC: 2d0957ecfabe95b9
+Test: Encrypt
+Key: 6eac1bf54bd54edb2321754303024c71
+IV: 0aca3f3aae60c4cefd996eccdd
+Header: 88c1552d5f72bb70ca3f3aae60c48ba9b5f82c2f00000a00
+Plaintext: 57cb5c0e5fcd885e9a4239e9b9cad60d64375979
+Ciphertext: 4bf281ef8ec7739f91591b97a87dc14b3fa17462
+MAC: 6dba8ef7f08087dd
+Test: Encrypt
+Key: 494b501e194675971a48d08c5bc353cb
+IV: 0aa4ad6d319985ba82e93437b3
+Header: 88c19afb798b8a4ba4ad6d319985bc429e8f0afa00000a00
+Plaintext: 25a98f9c1bd9c93cf383ab9d98152d76cb4a32c6
+Ciphertext: 561a0d068eac2eadb0c57fe2d0a6cc7398b6ddbf
+MAC: cfe438cbea61fa9a
+Test: Encrypt
+Key: 489e49bc3cfe3fce3895820e872ee1a3
+IV: 0053f869fe279acf1d3e75fea9
+Header: 084340ec29fa759b53f869fe279af0f9f8a65416000052bfd2703d24
+Plaintext: 7f91f2472d7a121c9cdd4b6c9080675a1020aa00
+Ciphertext: 25df5173835e4fba23bc05a253885ebed3ac4871
+MAC: c868a725552c5565
+Test: Encrypt
+Key: 02be5c4545672a07e4e314d70f1f9e85
+IV: 0d347ceb9aabffd2d6596e55d4
+Header: 88c3298c0baa9190347ceb9aabffd83d4886e5c20000e29d524ae1960d00
+Plaintext: f9a812e4a28af7f3714d4bf6622e5932f2184509
+Ciphertext: 6315500f924295cd3eafbdc3e151b1df46465b71
+MAC: 681fdee8513c62dc
+Test: Encrypt
+Key: 77077ed79453e4a18d60438cc6484d6e
+IV: 00d8ac5a7ec44450b01e77fd8e
+Header: 0843aa288b8435bcd8ac5a7ec444e8b46250538b0000e81402c2ee11
+Plaintext: 431981a2336d02f8cb8448d5428916be95293537
+Ciphertext: cf71b2ccbd590b20800792f359ed1cfd74d800b4
+MAC: fd0f41f426bb8f30
+Test: Encrypt
+Source: aes-modes-src-07-10-08/Testvals/ccm.2, Vectors for IEEE P1619.1 CCM Mode
+Header:
+Key: 0000000000000000000000000000000000000000000000000000000000000000
+IV: 000000000000000000000000
+Plaintext: 00000000000000000000000000000000
+Ciphertext: c1944044c8e7aa95d2de9513c7f3dd8c
+MAC: 4b0a3e5e51f151eb0ffae7c43d010fdb
+Test: Encrypt
+Plaintext:
+Ciphertext:
+Key: 0000000000000000000000000000000000000000000000000000000000000000
+IV: 000000000000000000000000
+Header: 00000000000000000000000000000000
+MAC: 904704e89fb216443cb9d584911fc3c2
+Test: Encrypt
+Key: 0000000000000000000000000000000000000000000000000000000000000000
+IV: 000000000000000000000000
+Header: 00000000000000000000000000000000
+Plaintext: 00000000000000000000000000000000
+Ciphertext: c1944044c8e7aa95d2de9513c7f3dd8c
+MAC: 87314e9c1fa01abe6a6415943dc38521
+Test: Encrypt
+Header:
+Key: fb7615b23d80891dd470980bc79584c8b2fb64ce60978f4d17fce45a49e830b7
+IV: dbd1a3636024b7b402da7d6f
+Plaintext: a845348ec8c5b5f126f50e76fefd1b1e
+Ciphertext: cc881261c6a7fa72b96a1739176b277f
+MAC: 3472e1145f2c0cbe146349062cf0e423
+Test: Encrypt
+Key: 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f
+IV: 101112131415161718191a1b
+Header: 000102030405060708090a0b0c0d0e0f10111213
+Plaintext: 202122232425262728292a2b2c2d2e2f3031323334353637
+Ciphertext: 04f883aeb3bd0730eaf50bb6de4fa2212034e4e41b0e75e5
+MAC: 9bba3f3a107f3239bd63902923f80371
+Test: Encrypt
+Key: 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f
+IV: 101112131415161718191a1b
+Header: r256 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
+Plaintext: 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+Ciphertext: 04f883aeb3bd0730eaf50bb6de4fa2212034e4e41b0e75e577f6bf2422c0f6d2
+MAC: 3376d2cf256ef613c56454cbb5265834
+Test: Encrypt
+Key: 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f
+IV: 101112131415161718191a1b
+Header: 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+Plaintext: 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f 606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f a0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
+Ciphertext: 24d8a38e939d2710cad52b96fe6f82010014c4c43b2e55c557d69f0402e0d6f2 06c53d6cbd3f1c3c6de5dcdcad9fb74f25741dea741149fe4278a0cc24741e86 58cc0523b8d7838c60fb1de4b7c3941f5b26dea9322aa29656ec37ac18a9b108 a6f38b7917f5a9c398838b22afbd17252e96694a9e6237964a0eae21c0a6e152 15a0e82022926be97268249599e456e05029c3ebc07d78fc5b4a0862e04e68c2 9514c7bdafc4b52e04833bf30622e4eb42504a44a9dcbc774752de7bb82891ad 1eba9dc3281422a8aba8654268d3d9c81705f4c5a531ef856df5609a159af738 eb753423ed2001b8f20c23725f2bef18c409f7e52132341f27cb8f0e79894dd9
+MAC: ebb1fa9d28ccfe21bdfea7e6d91e0bab
+Test: Encrypt
+Key: fb7615b23d80891dd470980bc79584c8b2fb64ce6097878d17fce45a49e830b7
+IV: dbd1a3636024b7b402da7d6f
+Header: 36
+Plaintext: a9
+Ciphertext: 9d
+MAC: 3261b1cf931431e99a32806738ecbd2a
+Test: Encrypt
+Key: f8d476cfd646ea6c2384cb1c27d6195dfef1a9f37b9c8d21a79c21f8cb90d289
+IV: dbd1a3636024b7b402da7d6f
+Header: 7bd859a247961a21823b380e9fe8b65082ba61d3
+Plaintext: 90ae61cf7baebd4cade494c54a29ae70269aec71
+Ciphertext: 6c05313e45dc8ec10bea6c670bd94f31569386a6
+MAC: 8f3829e8e76ee23c04f566189e63c686
+Test: Encrypt
+Source: RFC 3610
+Key: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
+IV: 00 00 00 03 02 01 00 A0 A1 A2 A3 A4 A5
+Header: 00 01 02 03 04 05 06 07
+Plaintext: 08 09 0A 0B 0C 0D 0E 0F\
+ 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E
+Ciphertext: 58 8C 97 9A 61 C6 63 D2\
+ F0 66 D0 C2 C0 F9 89 80 6D 5F 6B 61 DA C3 84
+MAC: 17 E8 D1 2C FD F9 26 E0
+Test: Encrypt
+MAC: 17 E8 D1 2C FD F9 26 00
+Test: NotVerify
+Key: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
+IV: 00 00 00 04 03 02 01 A0 A1 A2 A3 A4 A5
+Header: 00 01 02 03 04 05 06 07
+Plaintext: 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
+Ciphertext: 72 C9 1A 36 E1 35 F8 CF 29 1C A8 94 08 5C 87 E3 CC 15 C4 39 C9 E4 3A 3B
+MAC: A0 91 D5 6E 10 40 09 16
+Test: Encrypt
+Key: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
+IV: 00 00 00 05 04 03 02 A0 A1 A2 A3 A4 A5
+Header: 00 01 02 03 04 05 06 07
+Plaintext: 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20
+Ciphertext: 51 B1 E5 F4 4A 19 7D 1D A4 6B 0F 8E 2D 28 2A E8 71 E8 38 BB 64 DA 85 96 57
+MAC: 4A DA A7 6F BD 9F B0 C5
+Test: Encrypt
+Key: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
+IV: 00 00 00 06 05 04 03 A0 A1 A2 A3 A4 A5
+Header: 00 01 02 03 04 05 06 07 08 09 0A 0B
+Plaintext: 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E
+Ciphertext: A2 8C 68 65 93 9A 9A 79 FA AA 5C 4C 2A 9D 4A 91 CD AC 8C
+MAC: 96 C8 61 B9 C9 E6 1E F1
+Test: Encrypt
+Key: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
+IV: 00 00 00 07 06 05 04 A0 A1 A2 A3 A4 A5
+Header: 00 01 02 03 04 05 06 07 08 09 0A 0B
+Plaintext: 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
+Ciphertext: DC F1 FB 7B 5D 9E 23 FB 9D 4E 13 12 53 65 8A D8 6E BD CA 3E
+MAC: 51 E8 3F 07 7D 9C 2D 93
+Test: Encrypt
+Key: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
+IV: 00 00 00 08 07 06 05 A0 A1 A2 A3 A4 A5
+Header: 00 01 02 03 04 05 06 07 08 09 0A 0B
+Plaintext: 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20
+Ciphertext: 6F C1 B0 11 F0 06 56 8B 51 71 A4 2D 95 3D 46 9B 25 70 A4 BD 87
+MAC: 40 5A 04 43 AC 91 CB 94
+Test: Encrypt
+Key: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
+IV: 00 00 00 09 08 07 06 A0 A1 A2 A3 A4 A5
+Header: 00 01 02 03 04 05 06 07
+Plaintext: 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E
+Ciphertext: 01 35 D1 B2 C9 5F 41 D5 D1 D4 FE C1 85 D1 66 B8 09 4E 99 9D FE D9 6C
+MAC: 04 8C 56 60 2C 97 AC BB 74 90
+Test: Encrypt
+Key: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
+IV: 00 00 00 0A 09 08 07 A0 A1 A2 A3 A4 A5
+Header: 00 01 02 03 04 05 06 07
+Plaintext: 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
+Ciphertext: 7B 75 39 9A C0 83 1D D2 F0 BB D7 58 79 A2 FD 8F 6C AE 6B 6C D9 B7 DB 24
+MAC: C1 7B 44 33 F4 34 96 3F 34 B4
+Test: Encrypt
diff --git a/TestVectors/cmac.txt b/TestVectors/cmac.txt
new file mode 100644
index 0000000..4fa6c41
--- /dev/null
+++ b/TestVectors/cmac.txt
@@ -0,0 +1,38 @@
+AlgorithmType: MAC
+Name: CMAC(AES)
+Source: RFC 4493
+Key: 2b7e1516 28aed2a6 abf71588 09cf4f3c
+Message:
+MAC: bb1d6929 e9593728 7fa37d12 9b756746
+Test: Verify
+Message: 6bc1bee2 2e409f96 e93d7e11 7393172a
+MAC: 070a16b4 6b4d4144 f79bdd9d d04a287c
+Test: Verify
+Message: 6bc1bee2 2e409f96 e93d7e11 7393172a ae2d8a57 1e03ac9c 9eb76fac 45af8e51 30c81c46 a35ce411
+MAC: dfa66747 de9ae630 30ca3261 1497c827
+Test: Verify
+Message: 6bc1bee2 2e409f96 e93d7e11 7393172a ae2d8a57 1e03ac9c 9eb76fac 45af8e51 30c81c46 a35ce411 e5fbc119 1a0a52ef f69f2445 df4f9b17 ad2b417b e66c3710
+MAC: 51f0bebf 7e3b9d92 fc497417 79363cfe
+Test: Verify
+MAC: 51f0bebf 7e3b9d92 fc497417 79363cff
+Test: NotVerify
+
+AlgorithmType: MAC
+Name: CMAC(DES-EDE3)
+Source: http://csrc.nist.gov/groups/STM/cavp/documents/mac/cmactestvectors.zip
+Key: f8fba7b9b3e9d68a 2f70bfd304d32a15 9e13453e0d16928a
+Message:
+MAC: eb61515b
+Test: VerifyTruncated
+Key: 344a6732dc5e5431 e98a4f7c323dc1c4 6b0275dc150e68e9
+Message: 25db0710fb165d316e7c32dd25648ed0
+MAC: 862f0e2b
+Test: VerifyTruncated
+Key: 20ae32c49bab3bf8 f86bb66173fb54d5 3e700868c46bc291
+Message: 582bd9c8c36ec815d0a9
+MAC: 0d62f14f
+Test: VerifyTruncated
+Key: 62232501b9e9c1b5 54209d7c075d2c31 73a2f289a84c49ce
+Message: adaf4bfffab79ffb60b94647faac634929c56e694052881881e60b1149b6
+MAC: a05674f2c905d153
+Test: Verify
diff --git a/TestVectors/gcm.txt b/TestVectors/gcm.txt
new file mode 100644
index 0000000..e39ed36
--- /dev/null
+++ b/TestVectors/gcm.txt
@@ -0,0 +1,139 @@
+AlgorithmType: AuthenticatedSymmetricCipher
+Name: AES/GCM
+Source: aes-modes-src-07-10-08/Testvals/gcm.1, Basic Tests for GCM (compiled by B. R. Gladman)
+Key: 00000000000000000000000000000000
+IV: 000000000000000000000000
+MAC: 00000000000000000000000000000000
+Test: NotVerify
+Key: 00000000000000000000000000000000
+IV: 000000000000000000000000
+MAC: 58e2fccefa7e3061367f1d57a4e7455a
+Test: Encrypt
+Key: 00000000000000000000000000000000
+IV: 000000000000000000000000
+Plaintext: 00000000000000000000000000000000
+Ciphertext: 0388dace60b6a392f328c2b971b2fe78
+MAC: ab6e47d42cec13bdf53a67b21257bddf
+Test: Encrypt
+Key: feffe9928665731c6d6a8f9467308308
+IV: cafebabefacedbaddecaf888
+Plaintext: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a72 1c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255
+Ciphertext: 42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e 21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091473f5985
+MAC: 4d5c2af327cd64a62cf35abd2ba6fab4
+Test: Encrypt
+Key: feffe9928665731c6d6a8f9467308308
+IV: cafebabefacedbaddecaf888
+Header: feedfacedeadbeeffeedfacedeadbeefabaddad2
+Plaintext: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a72 1c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext: 42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e 21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091
+MAC: 5bc94fbc3221a5db94fae95ae7121a47
+Test: Encrypt
+Key: feffe9928665731c6d6a8f9467308308
+IV: cafebabefacedbad
+Header: feedfacedeadbeeffeedfacedeadbeefabaddad2
+Plaintext: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a72 1c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext: 61353b4c2806934a777ff51fa22a4755699b2a714fcdc6f83766e5f97b6c7423 73806900e49f24b22b097544d4896b424989b5e1ebac0f07c23f4598
+MAC: 3612d2e79e3b0785561be14aaca2fccb
+Test: Encrypt
+Key: feffe9928665731c6d6a8f9467308308
+IV: 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728 c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b
+Header: feedfacedeadbeeffeedfacedeadbeefabaddad2
+Plaintext: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a72 1c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext: 8ce24998625615b603a033aca13fb894be9112a5c3a211a8ba262a3cca7e2ca7 01e4a9a4fba43c90ccdcb281d48c7c6fd62875d2aca417034c34aee5
+MAC: 619cc5aefffe0bfa462af43c1699d050
+Test: Encrypt
+Header:
+Plaintext:
+Ciphertext:
+Key: 000000000000000000000000000000000000000000000000
+IV: 000000000000000000000000
+MAC: cd33b28ac773f74ba00ed1f312572435
+Test: Encrypt
+Key: 000000000000000000000000000000000000000000000000
+IV: 000000000000000000000000
+Plaintext: 00000000000000000000000000000000
+Ciphertext: 98e7247c07f0fe411c267e4384b0f600
+MAC: 2ff58d80033927ab8ef4d4587514f0fb
+Test: Encrypt
+Key: feffe9928665731c6d6a8f9467308308feffe9928665731c
+IV: cafebabefacedbaddecaf888
+Plaintext: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a72 1c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255
+Ciphertext: 3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c 7d773d00c144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710acade256
+MAC: 9924a7c8587336bfb118024db8674a14
+Test: Encrypt
+Key: feffe9928665731c6d6a8f9467308308feffe9928665731c
+IV: cafebabefacedbaddecaf888
+Header: feedfacedeadbeeffeedfacedeadbeefabaddad2
+Plaintext: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a72 1c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext: 3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c 7d773d00c144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710
+MAC: 2519498e80f1478f37ba55bd6d27618c
+Test: Encrypt
+Key: feffe9928665731c6d6a8f9467308308feffe9928665731c
+IV: cafebabefacedbad
+Header: feedfacedeadbeeffeedfacedeadbeefabaddad2
+Plaintext: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a72 1c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext: 0f10f599ae14a154ed24b36e25324db8c566632ef2bbb34f8347280fc4507057 fddc29df9a471f75c66541d4d4dad1c9e93a19a58e8b473fa0f062f7
+MAC: 65dcc57fcf623a24094fcca40d3533f8
+Test: Encrypt
+Key: feffe9928665731c6d6a8f9467308308feffe9928665731c
+IV: 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728 c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b
+Header: feedfacedeadbeeffeedfacedeadbeefabaddad2
+Plaintext: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a72 1c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext: d27e88681ce3243c4830165a8fdcf9ff1de9a1d8e6b447ef6ef7b79828666e45 81e79012af34ddd9e2f037589b292db3e67c036745fa22e7e9b7373b
+MAC: dcf566ff291c25bbb8568fc3d376a6d9
+Test: Encrypt
+Header:
+Plaintext:
+Ciphertext:
+Key: 0000000000000000000000000000000000000000000000000000000000000000
+IV: 000000000000000000000000
+MAC: 530f8afbc74536b9a963b4f1c4cb738b
+Test: Encrypt
+Key: 0000000000000000000000000000000000000000000000000000000000000000
+IV: 000000000000000000000000
+Plaintext: 00000000000000000000000000000000
+Ciphertext: cea7403d4d606b6e074ec5d3baf39d18
+MAC: d0d1c8a799996bf0265b98b5d48ab919
+Test: Encrypt
+Key: feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308
+IV: cafebabefacedbaddecaf888
+Plaintext: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a72 1c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255
+Ciphertext: 522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa 8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662898015ad
+MAC: b094dac5d93471bdec1a502270e3cc6c
+Test: Encrypt
+Key: feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308
+IV: cafebabefacedbaddecaf888
+Header: feedfacedeadbeeffeedfacedeadbeefabaddad2
+Plaintext: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a72 1c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext: 522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa 8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662
+MAC: 76fc6ece0f4e1768cddf8853bb2d551b
+Test: Encrypt
+Key: feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308
+IV: cafebabefacedbad
+Header: feedfacedeadbeeffeedfacedeadbeefabaddad2
+Plaintext: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a72 1c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext: c3762df1ca787d32ae47c13bf19844cbaf1ae14d0b976afac52ff7d79bba9de0 feb582d33934a4f0954cc2363bc73f7862ac430e64abe499f47c9b1f
+MAC: 3a337dbf46a792c45e454913fe2ea8f2
+Test: Encrypt
+Key: feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308
+IV: 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728 c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b
+Header: feedfacedeadbeeffeedfacedeadbeefabaddad2
+Plaintext: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a72 1c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
+Ciphertext: 5a8def2f0c9e53f1f75d7853659e2a20eeb2b22aafde6419a058ab4f6f746bf4 0fc0c3b780f244452da3ebf1c5d82cdea2418997200ef82e44ae7e3f
+MAC: a44a8266ee1c8eb0c8b5d4cf5ae9f19a
+Test: Encrypt
+Header:
+Plaintext:
+Ciphertext:
+Key: 00000000000000000000000000000000
+IV: 000000000000000000000000
+Plaintext: 000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f 303132333435363738393a3b3c3d3e3f 404142434445464748494a4b4c4d4e4f 505152535455565758595a5b5c5d5e5f 606162636465666768696a6b6c6d6e6f 707172737475767778797a7b7c7d7e7f 808182838485868788898a8b8c8d8e8f 909192939495969798999a9b9c9d9e9f a0a1a2a3a4a5a6a7a8a9aaabacadaeaf b0b1b2b3b4b5b6b7b8b9babbbcbdbebf c0c1c2c3c4c5c6c7c8c9cacbcccdcecf d0d1d2d3d4d5d6d7d8d9dadbdcdddedf
+Ciphertext: 0389d8cd64b3a595fb21c8b27dbff077 e784b8b85d5e4f34efe493e48896dfff 002333026a56b2fd08a09c87fcbe85cf f97c902a25bb1f4a43478687f5feb6cd ca9f3fc6ecab732627386ee2996a4cde c5e91f48c293c6a87774b950aeb1d7bf 62321a0d76006297b2d06623cf6e4fb1 433494c3326b0ae914120085a195413f 5e3278e4107d7b08dd2107405610e67d 83ed5b5ba0b591e9e46b1029f5f6936f fdb0e788fc09f60d861a0b3e1ab6294a 76ebdf6663421ef7dd6c1bc448dfcdb7 a0c38bae72fa627ed327f2b46fcec25a 77ee5fd7e3354788643c0d7df15075d5
+MAC: 6b385f3012eafda4189da7ad3b6eafbf
+Test: Encrypt
+Key: 00000000000000000000000000000000
+IV: 000000000000000000000000
+Plaintext: 000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f 303132333435363738393a3b3c3d3e3f 404142434445464748494a4b4c4d4e4f 505152535455565758595a5b5c5d5e5f 606162636465666768696a6b6c6d6e6f 707172737475767778797a7b7c7d7e7f 808182838485868788898a8b8c8d8e8f 909192939495969798999a9b9c9d9e9f a0a1a2a3a4a5a6a7a8a9aaabacadaeaf b0b1b2b3b4b5b6b7b8b9babbbcbdbebf c0c1c2c3c4c5c6c7c8c9cacbcccdcecf d0d1d2d3d4d5d6d7d8d9dadbdcdddedf
+Ciphertext: 0389d8cd64b3a595fb21c8b27dbff077 e784b8b85d5e4f34efe493e48896dfff 002333026a56b2fd08a09c87fcbe85cf f97c902a25bb1f4a43478687f5feb6cd ca9f3fc6ecab732627386ee2996a4cde c5e91f48c293c6a87774b950aeb1d7bf 62321a0d76006297b2d06623cf6e4fb1 433494c3326b0ae914120085a195413f 5e3278e4107d7b08dd2107405610e67d 83ed5b5ba0b591e9e46b1029f5f6936f fdb0e788fc09f60d861a0b3e1ab6294a 76ebdf6663421ef7dd6c1bc448dfcdb7 a0c38bae72fa627ed327f2b46fcec25a 77ee5fd7e3354788643c0d7df15075d5
+MAC: 6b385f3012eafda4189da7ad3b6eafbf
+Test: Encrypt
diff --git a/TestVectors/hmac.txt b/TestVectors/hmac.txt
index b380bab..52f85fd 100644
--- a/TestVectors/hmac.txt
+++ b/TestVectors/hmac.txt
@@ -4,40 +4,40 @@ Source: RFC 2202
Comment: Test Case 1
Key: 0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
Message: "Hi There"
-Digest: 0x9294727a3638bb1c13f48ef8158bfc9d
+MAC: 0x9294727a3638bb1c13f48ef8158bfc9d
Test: Verify
Comment: Test Case 2
Key: "Jefe"
Message: "what do ya want for nothing?"
-Digest: 0x750c783e6ab0b503eaa86e310a5db738
+MAC: 0x750c783e6ab0b503eaa86e310a5db738
Test: Verify
Comment: Test Case 3
Key: 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Message: r50 0xdd
-Digest: 0x56be34521d144c88dbb8c733f0e8b3f6
+MAC: 0x56be34521d144c88dbb8c733f0e8b3f6
Test: Verify
Comment: Test Case 4
Key: 0x0102030405060708090a0b0c0d0e0f10111213141516171819
Message: r50 0xcd
-Digest: 0x697eaf0aca3a3aea3a75164746ffaa79
+MAC: 0x697eaf0aca3a3aea3a75164746ffaa79
Test: Verify
Comment: Test Case 5
Key: 0x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
Message: "Test With Truncation"
-Digest: 0x56461ef2342edc00f9bab995690efd4c
+MAC: 0x56461ef2342edc00f9bab995690efd4c
Test: Verify
-Digest: 0x56461ef2342edc00f9bab995
-TruncatedSize: 12
+MAC: 0x56461ef2342edc00f9bab995
+#TruncatedSize: 12
Test: VerifyTruncated
Comment: Test Case 6
Key: r80 0xaa
Message: "Test Using Larger Than Block-Size Key - Hash Key First"
-Digest: 0x6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd
+MAC: 0x6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd
Test: Verify
Comment: Test Case 7
Key: r80 0xaa
Message: "Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data"
-Digest: 0x6f630fad67cda0ee1fb1f562db3aa53e
+MAC: 0x6f630fad67cda0ee1fb1f562db3aa53e
Test: Verify
AlgorithmType: MAC
@@ -46,40 +46,40 @@ Source: RFC 2202
Comment: Test Case 1
Key: 0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
Message: "Hi There"
-Digest: 0xb617318655057264e28bc0b6fb378c8ef146be00
+MAC: 0xb617318655057264e28bc0b6fb378c8ef146be00
Test: Verify
Comment: Test Case 2
Key: "Jefe"
Message: "what do ya want for nothing?"
-Digest: 0xeffcdf6ae5eb2fa2d27416d5f184df9c259a7c79
+MAC: 0xeffcdf6ae5eb2fa2d27416d5f184df9c259a7c79
Test: Verify
Comment: Test Case 3
Key: 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Message: r50 0xdd
-Digest: 0x125d7342b9ac11cd91a39af48aa17b4f63f175d3
+MAC: 0x125d7342b9ac11cd91a39af48aa17b4f63f175d3
Test: Verify
Comment: Test Case 4
Key: 0x0102030405060708090a0b0c0d0e0f10111213141516171819
Message: r50 0xcd
-Digest: 0x4c9007f4026250c6bc8414f9bf50c86c2d7235da
+MAC: 0x4c9007f4026250c6bc8414f9bf50c86c2d7235da
Test: Verify
Comment: Test Case 5
Key: 0x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
Message: "Test With Truncation"
-Digest: 0x4c1a03424b55e07fe7f27be1d58bb9324a9a5a04
+MAC: 0x4c1a03424b55e07fe7f27be1d58bb9324a9a5a04
Test: Verify
-Digest: 0x4c1a03424b55e07fe7f27be1
-TruncatedSize: 12
+MAC: 0x4c1a03424b55e07fe7f27be1
+#TruncatedSize: 12
Test: VerifyTruncated
Comment: Test Case 6
Key: r80 0xaa
Message: "Test Using Larger Than Block-Size Key - Hash Key First"
-Digest: 0xaa4ae5e15272d00e95705637ce8a3b55ed402112
+MAC: 0xaa4ae5e15272d00e95705637ce8a3b55ed402112
Test: Verify
Comment: Test Case 7
Key: r80 0xaa
Message: "Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data"
-Digest: 0xe8e99d0f45237d786d6bbaa7965c7808bbff1a91
+MAC: 0xe8e99d0f45237d786d6bbaa7965c7808bbff1a91
Test: Verify
AlgorithmType: MAC
@@ -88,38 +88,38 @@ Source: RFC 2286
Comment: Test Case 1
Key: 0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
Message: "Hi There"
-Digest: 0x24cb4bd67d20fc1a5d2ed7732dcc39377f0a5668
+MAC: 0x24cb4bd67d20fc1a5d2ed7732dcc39377f0a5668
Test: Verify
Comment: Test Case 2
Key: "Jefe"
Message: "what do ya want for nothing?"
-Digest: 0xdda6c0213a485a9e24f4742064a7f033b43c4069
+MAC: 0xdda6c0213a485a9e24f4742064a7f033b43c4069
Test: Verify
Comment: Test Case 3
Key: 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Message: r50 0xdd
-Digest: 0xb0b105360de759960ab4f35298e116e295d8e7c1
+MAC: 0xb0b105360de759960ab4f35298e116e295d8e7c1
Test: Verify
Comment: Test Case 4
Key: 0x0102030405060708090a0b0c0d0e0f10111213141516171819
Message: r50 0xcd
-Digest: 0xd5ca862f4d21d5e610e18b4cf1beb97a4365ecf4
+MAC: 0xd5ca862f4d21d5e610e18b4cf1beb97a4365ecf4
Test: Verify
Comment: Test Case 5
Key: 0x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
Message: "Test With Truncation"
-Digest: 0x7619693978f91d90539ae786500ff3d8e0518e39
+MAC: 0x7619693978f91d90539ae786500ff3d8e0518e39
Test: Verify
-Digest: 0x7619693978f91d90539ae786
-TruncatedSize: 12
+MAC: 0x7619693978f91d90539ae786
+#TruncatedSize: 12
Test: VerifyTruncated
Comment: Test Case 6
Key: r80 0xaa
Message: "Test Using Larger Than Block-Size Key - Hash Key First"
-Digest: 0x6466ca07ac5eac29e1bd523e5ada7605b791fd8b
+MAC: 0x6466ca07ac5eac29e1bd523e5ada7605b791fd8b
Test: Verify
Comment: Test Case 7
Key: r80 0xaa
Message: "Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data"
-Digest: 0x69ea60798d71616cce5fd0871e23754cd75d5a0a
+MAC: 0x69ea60798d71616cce5fd0871e23754cd75d5a0a
Test: Verify
diff --git a/TestVectors/panama.txt b/TestVectors/panama.txt
index 112011c..bd4d4ee 100755
--- a/TestVectors/panama.txt
+++ b/TestVectors/panama.txt
@@ -31,17 +31,17 @@ Name: Panama-LE
Source: modified from Panama hash test vectors
Key: ""
Message: ""
-Digest: aa0cc954d757d7ac7779ca3342334ca471abd47d5952ac91ed837ecd5b16922b
+MAC: aa0cc954d757d7ac7779ca3342334ca471abd47d5952ac91ed837ecd5b16922b
Test: Verify
Message: "The quick brown fox jumps over the lazy dog"
-Digest: 5f5ca355b90ac622b0aa7e654ef5f27e9e75111415b48b8afe3add1c6b89cba1
+MAC: 5f5ca355b90ac622b0aa7e654ef5f27e9e75111415b48b8afe3add1c6b89cba1
Test: Verify
Message: r15625 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
-Digest: af9c66fb6058e2232a5dfba063ee14b0f86f0e334e165812559435464dd9bb60
+MAC: af9c66fb6058e2232a5dfba063ee14b0f86f0e334e165812559435464dd9bb60
Test: Verify
Key: "The "
Message: "quick brown fox jumps over the lazy dog"
-Digest: 5f5ca355b90ac622b0aa7e654ef5f27e9e75111415b48b8afe3add1c6b89cba1
+MAC: 5f5ca355b90ac622b0aa7e654ef5f27e9e75111415b48b8afe3add1c6b89cba1
Test: Verify
AlgorithmType: MAC
@@ -49,17 +49,17 @@ Name: Panama-BE
Source: modified from Panama hash test vectors
Key: ""
Message: ""
-Digest: e81aa04523532dd7267e5c5bc3ba0e289837a62ba032350351980e960a84b0af
+MAC: e81aa04523532dd7267e5c5bc3ba0e289837a62ba032350351980e960a84b0af
Test: Verify
Message: "The quick brown fox jumps over the lazy dog"
-Digest: 8fa7dadce0110f979a0b795e76b2c25628d8bda88747758149c42e3bc13f85bc
+MAC: 8fa7dadce0110f979a0b795e76b2c25628d8bda88747758149c42e3bc13f85bc
Test: Verify
Message: r15625 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
-Digest: cb34f0937e8d870d3bd7ff6311765f2c229a6c2154e4db119538db5159437cab
+MAC: cb34f0937e8d870d3bd7ff6311765f2c229a6c2154e4db119538db5159437cab
Test: Verify
Key: "The "
Message: "quick brown fox jumps over the lazy dog"
-Digest: 8fa7dadce0110f979a0b795e76b2c25628d8bda88747758149c42e3bc13f85bc
+MAC: 8fa7dadce0110f979a0b795e76b2c25628d8bda88747758149c42e3bc13f85bc
Test: Verify
AlgorithmType: SymmetricCipher
diff --git a/TestVectors/seed.txt b/TestVectors/seed.txt
new file mode 100644
index 0000000..a08a102
--- /dev/null
+++ b/TestVectors/seed.txt
@@ -0,0 +1,19 @@
+AlgorithmType: SymmetricCipher
+Name: SEED/ECB
+Source: RFC 4269
+Key: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+Plaintext: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
+Ciphertext: 5E BA C6 E0 05 4E 16 68 19 AF F1 CC 6D 34 6C DB
+Test: Encrypt
+Key: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
+Plaintext: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+Ciphertext: C1 1F 22 F2 01 40 50 50 84 48 35 97 E4 37 0F 43
+Test: Encrypt
+Key: 47 06 48 08 51 E6 1B E8 5D 74 BF B3 FD 95 61 85
+Plaintext: 83 A2 F8 A2 88 64 1F B9 A4 E9 A5 CC 2F 13 1C 7D
+Ciphertext: EE 54 D1 3E BC AE 70 6D 22 6B C3 14 2C D4 0D 4A
+Test: Encrypt
+Key: 28 DB C3 BC 49 FF D8 7D CF A5 09 B1 1D 42 2B E7
+Plaintext: B4 1E 6B E2 EB A8 4A 14 8E 2E ED 84 59 3C 5E C7
+Ciphertext: 9B 9B 7B FC D1 81 3C B9 5D 0B 36 18 F4 0F 51 22
+Test: Encrypt
diff --git a/TestVectors/ttmac.txt b/TestVectors/ttmac.txt
index 537a333..ec2e683 100644
--- a/TestVectors/ttmac.txt
+++ b/TestVectors/ttmac.txt
@@ -5,36 +5,36 @@ Comment: Key for all test cases
Key: 00112233445566778899aabbccddeeff01234567
Comment: Test Case 1
Message: ""
-Digest: 2dec8ed4a0fd712ed9fbf2ab466ec2df21215e4a
+MAC: 2dec8ed4a0fd712ed9fbf2ab466ec2df21215e4a
Test: Verify
Comment: Test Case 2
Message: "a"
-Digest: 5893e3e6e306704dd77ad6e6ed432cde321a7756
+MAC: 5893e3e6e306704dd77ad6e6ed432cde321a7756
Test: Verify
Comment: Test Case 3
Message: "abc"
-Digest: 70bfd1029797a5c16da5b557a1f0b2779b78497e
+MAC: 70bfd1029797a5c16da5b557a1f0b2779b78497e
Test: Verify
Comment: Test Case 4
Message: "message digest"
-Digest: 8289f4f19ffe4f2af737de4bd71c829d93a972fa
+MAC: 8289f4f19ffe4f2af737de4bd71c829d93a972fa
Test: Verify
Comment: Test Case 5
Message: "abcdefghijklmnopqrstuvwxyz"
-Digest: 2186ca09c5533198b7371f245273504ca92bae60
+MAC: 2186ca09c5533198b7371f245273504ca92bae60
Test: Verify
Comment: Test Case 6
Message: "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
-Digest: 8a7bf77aef62a2578497a27c0d6518a429e7c14d
+MAC: 8a7bf77aef62a2578497a27c0d6518a429e7c14d
Test: Verify
Comment: Test Case 7
Message: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
-Digest: 54bac392a886806d169556fcbb6789b54fb364fb
+MAC: 54bac392a886806d169556fcbb6789b54fb364fb
Test: Verify
Comment: Test Case 8
Message: r8 "1234567890"
-Digest: 0ced2c9f8f0d9d03981ab5c8184bac43dd54c484
+MAC: 0ced2c9f8f0d9d03981ab5c8184bac43dd54c484
Test: Verify
Comment: Test Case 9
Message: r15625 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
-Digest: 27b3aedb5df8b629f0142194daa3846e1895f3d2
+MAC: 27b3aedb5df8b629f0142194daa3846e1895f3d2
diff --git a/TestVectors/vmac.txt b/TestVectors/vmac.txt
index ad7db7a..1d983cd 100755
--- a/TestVectors/vmac.txt
+++ b/TestVectors/vmac.txt
@@ -2,76 +2,76 @@ AlgorithmType: MAC
Name: VMAC(AES)-64
Source: http://www.fastcrypto.org/vmac/draft-krovetz-vmac-01.txt
Key: "abcdefghijklmnop"
-IV: r8 00 "bcdefghi"
+IV: "bcdefghi"
Message: ""
-Digest: 2576BE1C56D8B81B
+MAC: 2576BE1C56D8B81B
Test: Verify
Message: "abc"
-Digest: 2D376CF5B1813CE5
+MAC: 2D376CF5B1813CE5
Test: Verify
Message: r16 "abc"
-Digest: E8421F61D573D298
+MAC: E8421F61D573D298
Test: Verify
Message: r100 "abc"
-Digest: 4492DF6C5CAC1BBE
+MAC: 4492DF6C5CAC1BBE
Test: Verify
Message: r1000000 "abc"
-Digest: 09BA597DD7601113
+MAC: 09BA597DD7601113
Test: Verify
Message: r42 "abc" "ab"
-Digest: D638B73921F184DE
+MAC: D638B73921F184DE
Test: Verify
Message: r170 "abc" "ab"
-Digest: 9DA310281E6FD0A0
+MAC: 9DA310281E6FD0A0
Test: Verify
Message: r65 "a"
-Digest: 90 ea 57 cb 51 bc 92 a3
+MAC: 90 ea 57 cb 51 bc 92 a3
Test: Verify
Message: r129 "a"
-Digest: 86 34 83 87 d1 3d 82 33
+MAC: 86 34 83 87 d1 3d 82 33
Test: Verify
Message: r65 "abc"
-Digest: E86A86EC77A8BF61
+MAC: E86A86EC77A8BF61
Test: Verify
Message: "abc"
-Digest: 2D376CF5B1813CE0
+MAC: 2D376CF5B1813CE0
Test: NotVerify
AlgorithmType: MAC
Name: VMAC(AES)-128
Source: http://www.fastcrypto.org/vmac/draft-krovetz-vmac-01.txt
Key: "abcdefghijklmnop"
-IV: r8 00 "bcdefghi"
+IV: "bcdefghi"
Message: ""
-Digest: 472766C70F74ED23481D6D7DE4E80DAC
+MAC: 472766C70F74ED23481D6D7DE4E80DAC
Test: Verify
Message: "abc"
-Digest: 4EE815A06A1D71EDD36FC75D51188A42
+MAC: 4EE815A06A1D71EDD36FC75D51188A42
Test: Verify
Message: r16 "abc"
-Digest: 09F2C80C8E1007A0C12FAE19FE4504AE
+MAC: 09F2C80C8E1007A0C12FAE19FE4504AE
Test: Verify
Message: r100 "abc"
-Digest: 66438817154850C61D8A412164803BCB
+MAC: 66438817154850C61D8A412164803BCB
Test: Verify
Message: r1000000 "abc"
-Digest: 2B6B02288FFC461B75485DE893C629DC
+MAC: 2B6B02288FFC461B75485DE893C629DC
Test: Verify
Message: r42 "abc" "ab"
-Digest: F7E95FE3DA8DB9E6BB973E65D0B4CEA5
+MAC: F7E95FE3DA8DB9E6BB973E65D0B4CEA5
Test: Verify
Message: r170 "abc" "ab"
-Digest: BF53B8D2D70C05A85880C2E21CAF1299
+MAC: BF53B8D2D70C05A85880C2E21CAF1299
Test: Verify
Message: r65 "a"
-Digest: b2 9b 00 76 0a 58 c7 ab 92 d6 60 24 d6 9c 1b 92
+MAC: b2 9b 00 76 0a 58 c7 ab 92 d6 60 24 d6 9c 1b 92
Test: Verify
Message: r129 "a"
-Digest: a7 e5 2c 32 89 d9 b7 3b 53 57 6f 05 95 85 ee 79
+MAC: a7 e5 2c 32 89 d9 b7 3b 53 57 6f 05 95 85 ee 79
Test: Verify
Message: r65 "abc"
-Digest: 0A1B2F973044F469F405917E45010334
+MAC: 0A1B2F973044F469F405917E45010334
Test: Verify
Message: "abc"
-Digest: 4EE815A06A1D71EDD36FC75D51188A40
+MAC: 4EE815A06A1D71EDD36FC75D51188A40
Test: NotVerify