summaryrefslogtreecommitdiffstats
path: root/tests/symm_ciphers.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/symm_ciphers.c')
-rw-r--r--tests/symm_ciphers.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/symm_ciphers.c b/tests/symm_ciphers.c
index a6f3570..2c2cd92 100644
--- a/tests/symm_ciphers.c
+++ b/tests/symm_ciphers.c
@@ -209,6 +209,62 @@ main (void)
res = ncr_symm_cipher_alloc (&sess, tvs[i].mech);
assert (res == CKR_OK);
+ res = ncr_symm_key_create (&key, tvs[i].key_type, true, tvs[i].key,
+ tvs[i].key_size);
+ assert (res == CKR_OK);
+
+ res = ncr_symm_cipher_encrypt_init (sess, key, tvs[i].iv, tvs[i].iv_size);
+ assert (res == CKR_OK);
+
+ dest_size = sizeof (dest);
+ res = ncr_symm_cipher_encrypt_update (sess, dest, &dest_size,
+ tvs[i].input, tvs[i].input_size);
+ assert (res == CKR_OK);
+ assert (dest_size == tvs[i].output_size);
+ assert (memcmp (dest, tvs[i].output, dest_size) == 0);
+
+ res = ncr_symm_cipher_change_iv (sess, tvs[i].iv, tvs[i].iv_size);
+ assert (res == CKR_OK);
+
+ dest_size = sizeof (dest);
+ res = ncr_symm_cipher_encrypt_final (sess, dest, &dest_size, tvs[i].input,
+ tvs[i].input_size);
+ assert (res == CKR_OK);
+ assert (dest_size == tvs[i].output_size);
+ assert (memcmp (dest, tvs[i].output, dest_size) == 0);
+
+ res = ncr_symm_cipher_decrypt_init (sess, key, tvs[i].iv, tvs[i].iv_size);
+ assert (res == CKR_OK);
+
+ dest_size = sizeof (dest);
+ res = ncr_symm_cipher_decrypt_update (sess, dest, &dest_size,
+ tvs[i].output, tvs[i].output_size);
+ assert (res == CKR_OK);
+ assert (dest_size == tvs[i].input_size);
+ assert (memcmp (dest, tvs[i].input, dest_size) == 0);
+
+ res = ncr_symm_cipher_change_iv (sess, tvs[i].iv, tvs[i].iv_size);
+ assert (res == CKR_OK);
+
+ dest_size = sizeof (dest);
+ res = ncr_symm_cipher_decrypt_final (sess, dest, &dest_size,
+ tvs[i].output, tvs[i].output_size);
+ assert (res == CKR_OK);
+ assert (dest_size == tvs[i].input_size);
+ assert (memcmp (dest, tvs[i].input, dest_size) == 0);
+
+ res = ncr_symm_key_destroy (key);
+ assert (res == CKR_OK);
+
+ res = ncr_symm_cipher_free (sess);
+ assert (res == CKR_OK);
+ }
+
+ for (i = 0; i < G_N_ELEMENTS (tvs); i++)
+ {
+ res = ncr_symm_cipher_alloc (&sess, tvs[i].mech);
+ assert (res == CKR_OK);
+
res = ncr_symm_key_generate (&key, tvs[i].key_gen_mech, true,
tvs[i].key_size);
assert (res == CKR_OK);