summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMiloslav Trmač <mitr@redhat.com>2010-10-07 16:44:56 +0200
committerMiloslav Trmač <mitr@redhat.com>2010-10-07 16:44:56 +0200
commitb3f834abe9a059605a749449d2b4b2146667ed3b (patch)
tree737139e678ac6d22219d7faba84c9e2d3e3a1682 /tests
parent8a0e6e168da0c9efed8810725af5c593a8edf7cf (diff)
downloadncrypto-b3f834abe9a059605a749449d2b4b2146667ed3b.tar.gz
ncrypto-b3f834abe9a059605a749449d2b4b2146667ed3b.tar.xz
ncrypto-b3f834abe9a059605a749449d2b4b2146667ed3b.zip
Add AES_CBC tests
Diffstat (limited to 'tests')
-rw-r--r--tests/symm_ciphers.c44
1 files changed, 33 insertions, 11 deletions
diff --git a/tests/symm_ciphers.c b/tests/symm_ciphers.c
index ccf6fe5..d4e673d 100644
--- a/tests/symm_ciphers.c
+++ b/tests/symm_ciphers.c
@@ -39,33 +39,51 @@ struct tv
CK_KEY_TYPE key_type;
const uint8_t *key;
size_t key_size;
+ const uint8_t *iv;
+ size_t iv_size;
const uint8_t *input;
size_t input_size;
const uint8_t *output;
size_t output_size;
};
-/* FIXME: Test non-ECB modes as well. */
+/* FIXME: Test CBC_PAD as well. */
static const struct tv tvs[] =
{
-#define TV(M, K, KEY, IN, OUT) \
+#define TV(M, K, KEY, IV, IN, OUT) \
{ \
(M), (K), (const uint8_t *)(KEY), sizeof (KEY) - 1, \
- (const uint8_t *)(IN), sizeof (IN) - 1, (const uint8_t *)(OUT), \
- sizeof (OUT) - 1 \
+ (const uint8_t *)(IV), sizeof (IV) - 1, (const uint8_t *)(IN), \
+ sizeof (IN) - 1, (const uint8_t *)(OUT), sizeof (OUT) - 1 \
}
TV (CKM_AES_ECB, CKK_AES,
- "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F",
+ "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F", "",
"\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xAA\xBB\xCC\xDD\xEE\xFF",
"\x69\xC4\xE0\xD8\x6A\x7B\x04\x30\xD8\xCD\xB7\x80\x70\xB4\xC5\x5A"),
TV (CKM_AES_ECB, CKK_AES,
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17",
- "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xAA\xBB\xCC\xDD\xEE\xFF",
+ "", "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xAA\xBB\xCC\xDD\xEE\xFF",
"\xDD\xA9\x7C\xA4\x86\x4C\xDF\xE0\x6E\xAF\x70\xA0\xEC\x0D\x71\x91"),
TV (CKM_AES_ECB, CKK_AES,
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F",
- "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xAA\xBB\xCC\xDD\xEE\xFF",
+ "", "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xAA\xBB\xCC\xDD\xEE\xFF",
"\x8E\xA2\xB7\xCA\x51\x67\x45\xBF\xEA\xFC\x49\x90\x4B\x49\x60\x89"),
+
+ TV (CKM_AES_CBC, CKK_AES,
+ "\x2B\x7E\x15\x16\x28\xAE\xD2\xA6\xAB\xF7\x15\x88\x09\xCF\x4F\x3C",
+ "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F",
+ "\x6B\xC1\xBE\xE2\x2E\x40\x9F\x96\xE9\x3D\x7E\x11\x73\x93\x17\x2A\xAE\x2D\x8A\x57\x1E\x03\xAC\x9C\x9E\xB7\x6F\xAC\x45\xAF\x8E\x51\x30\xC8\x1C\x46\xA3\x5C\xE4\x11\xE5\xFB\xC1\x19\x1A\x0A\x52\xEF\xF6\x9F\x24\x45\xDF\x4F\x9B\x17\xAD\x2B\x41\x7B\xE6\x6C\x37\x10",
+ "\x76\x49\xAB\xAC\x81\x19\xB2\x46\xCE\xE9\x8E\x9B\x12\xE9\x19\x7D\x50\x86\xCB\x9B\x50\x72\x19\xEE\x95\xDB\x11\x3A\x91\x76\x78\xB2\x73\xBE\xD6\xB8\xE3\xC1\x74\x3B\x71\x16\xE6\x9E\x22\x22\x95\x16\x3F\xF1\xCA\xA1\x68\x1F\xAC\x09\x12\x0E\xCA\x30\x75\x86\xE1\xA7"),
+ TV (CKM_AES_CBC, CKK_AES,
+ "\x8E\x73\xB0\xF7\xDA\x0E\x64\x52\xC8\x10\xF3\x2B\x80\x90\x79\xE5\x62\xF8\xEA\xD2\x52\x2C\x6B\x7B",
+ "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F",
+ "\x6B\xC1\xBE\xE2\x2E\x40\x9F\x96\xE9\x3D\x7E\x11\x73\x93\x17\x2A\xAE\x2D\x8A\x57\x1E\x03\xAC\x9C\x9E\xB7\x6F\xAC\x45\xAF\x8E\x51\x30\xC8\x1C\x46\xA3\x5C\xE4\x11\xE5\xFB\xC1\x19\x1A\x0A\x52\xEF\xF6\x9F\x24\x45\xDF\x4F\x9B\x17\xAD\x2B\x41\x7B\xE6\x6C\x37\x10",
+ "\x4F\x02\x1D\xB2\x43\xBC\x63\x3D\x71\x78\x18\x3A\x9F\xA0\x71\xE8\xB4\xD9\xAD\xA9\xAD\x7D\xED\xF4\xE5\xE7\x38\x76\x3F\x69\x14\x5A\x57\x1B\x24\x20\x12\xFB\x7A\xE0\x7F\xA9\xBA\xAC\x3D\xF1\x02\xE0\x08\xB0\xE2\x79\x88\x59\x88\x81\xD9\x20\xA9\xE6\x4F\x56\x15\xCD"),
+ TV (CKM_AES_CBC, CKK_AES,
+ "\x60\x3D\xEB\x10\x15\xCA\x71\xBE\x2B\x73\xAE\xF0\x85\x7D\x77\x81\x1F\x35\x2C\x07\x3B\x61\x08\xD7\x2D\x98\x10\xA3\x09\x14\xDF\xF4",
+ "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F",
+ "\x6B\xC1\xBE\xE2\x2E\x40\x9F\x96\xE9\x3D\x7E\x11\x73\x93\x17\x2A\xAE\x2D\x8A\x57\x1E\x03\xAC\x9C\x9E\xB7\x6F\xAC\x45\xAF\x8E\x51\x30\xC8\x1C\x46\xA3\x5C\xE4\x11\xE5\xFB\xC1\x19\x1A\x0A\x52\xEF\xF6\x9F\x24\x45\xDF\x4F\x9B\x17\xAD\x2B\x41\x7B\xE6\x6C\x37\x10",
+ "\xF5\x8C\x4C\x04\xD6\xE5\xF1\xBA\x77\x9E\xAB\xFB\x5F\x7B\xFB\xD6\x9C\xFC\x4E\x96\x7E\xDB\x80\x8D\x67\x9F\x77\x7B\xC6\x70\x2C\x7D\x39\xF2\x33\x69\xA9\xD9\xBA\xCF\xA5\x30\xE2\x63\x04\x23\x14\x61\xB2\xEB\x05\xE2\xC3\x9B\xE9\xFC\xDA\x6C\x19\x07\x8C\x6A\x9D\x1B"),
#undef TV
};
@@ -89,7 +107,8 @@ main (void)
for (j = 0; j < 2; j++)
{
- res = ncr_symm_cipher_encrypt_init (sess, key, NULL, 0);
+ res = ncr_symm_cipher_encrypt_init (sess, key, tvs[i].iv,
+ tvs[i].iv_size);
assert (res == CKR_OK);
dest_size = sizeof (dest);
@@ -106,7 +125,8 @@ main (void)
assert (res == CKR_OK);
assert (dest_size == 0);
- res = ncr_symm_cipher_decrypt_init (sess, key, NULL, 0);
+ res = ncr_symm_cipher_decrypt_init (sess, key, tvs[i].iv,
+ tvs[i].iv_size);
assert (res == CKR_OK);
dest_size = sizeof (dest);
@@ -142,7 +162,8 @@ main (void)
for (j = 0; j < 2; j++)
{
- res = ncr_symm_cipher_encrypt_init (sess, key, NULL, 0);
+ res = ncr_symm_cipher_encrypt_init (sess, key, tvs[i].iv,
+ tvs[i].iv_size);
assert (res == CKR_OK);
dest_size = sizeof (dest);
@@ -152,7 +173,8 @@ main (void)
assert (dest_size == tvs[i].output_size);
assert (memcmp (dest, tvs[i].output, dest_size) == 0);
- res = ncr_symm_cipher_decrypt_init (sess, key, NULL, 0);
+ res = ncr_symm_cipher_decrypt_init (sess, key, tvs[i].iv,
+ tvs[i].iv_size);
assert (res == CKR_OK);
dest_size = sizeof (dest);