Modify the aes_func.c test to test all modes using key lens 128, 192 and 256.

Signed-off-by: Kent Yoder <[email protected]>

diff --git a/testcases/driver/aes_func.c b/testcases/driver/aes_func.c
index 9b82865..a31c84c 100755
--- a/testcases/driver/aes_func.c
+++ b/testcases/driver/aes_func.c
@@ -8,6 +8,14 @@
 #include "pkcs11types.h"
 #include "regress.h"
 
+#ifndef AES_KEY_SIZE_128
+#define AES_KEY_SIZE_128 16
+#endif
+
+#ifndef AES_KEY_SIZE_192
+#define AES_KEY_SIZE_192 24
+#endif
+
 #ifndef AES_KEY_SIZE_256
 #define AES_KEY_SIZE_256 32
 #endif
@@ -24,7 +32,7 @@
 #define AES_KEY_LEN 32
 #endif
 
-CK_RV do_EncryptAES_ECB(void)
+CK_RV do_EncryptAES_ECB(CK_ULONG key_len)
 {
        CK_BYTE             data1[BIG_REQUEST];
        CK_BYTE             data2[BIG_REQUEST];
@@ -36,7 +44,7 @@ CK_RV do_EncryptAES_ECB(void)
        CK_BYTE             user_pin[PKCS11_MAX_PIN_LEN];
        CK_ULONG            user_pin_len;
        CK_ULONG            i;
-       CK_ULONG            len1, len2, key_size = AES_KEY_SIZE_256;
+       CK_ULONG            len1, len2, key_size = key_len;
        CK_RV               rc, loc_rc;
        CK_ATTRIBUTE        key_gen_tmpl[] = {
                {CKA_VALUE_LEN, &key_size, sizeof(CK_ULONG) }
@@ -127,7 +135,7 @@ error:
 
 //
 //
-CK_RV do_EncryptAES_Multipart_ECB( void )
+CK_RV do_EncryptAES_Multipart_ECB(CK_ULONG key_len)
 {
        CK_BYTE             original[BIG_REQUEST];
        CK_BYTE             crypt1  [BIG_REQUEST];
@@ -145,7 +153,7 @@ CK_RV do_EncryptAES_Multipart_ECB( void )
        CK_ULONG            i, k;
        CK_ULONG            orig_len;
        CK_ULONG            crypt1_len, crypt2_len, decrypt1_len, decrypt2_len;
-       CK_ULONG            tmp, key_size = AES_KEY_SIZE_256;
+       CK_ULONG            tmp, key_size = key_len;
        CK_RV               rc, loc_rc;
        CK_ATTRIBUTE        key_gen_tmpl[] = {
                {CKA_VALUE_LEN, &key_size, sizeof(CK_ULONG) }
@@ -392,7 +400,7 @@ error:
 
 //
 //
-CK_RV do_EncryptAES_CBC( void )
+CK_RV do_EncryptAES_CBC(CK_ULONG key_len)
 {
        CK_BYTE             data1[BIG_REQUEST];
        CK_BYTE             data2[BIG_REQUEST];
@@ -404,7 +412,7 @@ CK_RV do_EncryptAES_CBC( void )
        CK_BYTE             user_pin[PKCS11_MAX_PIN_LEN];
        CK_ULONG            user_pin_len;
        CK_BYTE             init_v[AES_BLOCK_SIZE];
-       CK_ULONG            i, key_size = AES_KEY_SIZE_256;
+       CK_ULONG            i, key_size = key_len;
        CK_ULONG            len1, len2;
        CK_RV               rc;
        CK_ATTRIBUTE        key_gen_tmpl[] = {
@@ -513,7 +521,7 @@ CK_RV do_EncryptAES_CBC( void )
 
 //
 //
-CK_RV do_EncryptAES_Multipart_CBC( void )
+CK_RV do_EncryptAES_Multipart_CBC(CK_ULONG key_len)
 {
        CK_BYTE             original[BIG_REQUEST];
        CK_BYTE             crypt1  [BIG_REQUEST];
@@ -532,7 +540,7 @@ CK_RV do_EncryptAES_Multipart_CBC( void )
        CK_ULONG            i, k;
        CK_ULONG            orig_len;
        CK_ULONG            crypt1_len, crypt2_len, decrypt1_len, decrypt2_len;
-       CK_ULONG            tmp, key_size = AES_KEY_SIZE_256;
+       CK_ULONG            tmp, key_size = key_len;
        CK_RV               rc;
        CK_ATTRIBUTE        key_gen_tmpl[] = {
                {CKA_VALUE_LEN, &key_size, sizeof(CK_ULONG) }
@@ -763,7 +771,7 @@ CK_RV do_EncryptAES_Multipart_CBC( void )
 
 //
 //
-CK_RV do_EncryptAES_Multipart_CBC_PAD( void )
+CK_RV do_EncryptAES_Multipart_CBC_PAD(CK_ULONG key_len)
 {
        CK_BYTE             original[BIG_REQUEST];
 
@@ -784,7 +792,7 @@ CK_RV do_EncryptAES_Multipart_CBC_PAD( void )
        CK_ULONG            user_pin_len;
        CK_ULONG            i, k;
        CK_ULONG            orig_len, crypt1_len, crypt2_len, decrypt1_len, 
decrypt2_len;
-       CK_RV               rc, key_size = AES_KEY_SIZE_256;
+       CK_RV               rc, key_size = key_len;
        CK_ATTRIBUTE        key_gen_tmpl[] = {
                {CKA_VALUE_LEN, &key_size, sizeof(CK_ULONG) }
        };
@@ -1017,7 +1025,7 @@ CK_RV do_EncryptAES_Multipart_CBC_PAD( void )
 
 //
 //
-CK_RV do_WrapUnwrapAES_ECB( void )
+CK_RV do_WrapUnwrapAES_ECB(CK_ULONG key_len)
 {
        CK_BYTE             data1[BIG_REQUEST];
        CK_BYTE             data2[BIG_REQUEST];
@@ -1033,7 +1041,7 @@ CK_RV do_WrapUnwrapAES_ECB( void )
        CK_ULONG            user_pin_len;
        CK_ULONG            wrapped_data_len;
        CK_ULONG            i;
-       CK_ULONG            len1, len2, key_size = AES_KEY_SIZE_256;
+       CK_ULONG            len1, len2, key_size = key_len;
        CK_RV               rc, loc_rc;
        CK_ATTRIBUTE        key_gen_tmpl[] = {
                {CKA_VALUE_LEN, &key_size, sizeof(CK_ULONG) }
@@ -1237,7 +1245,7 @@ error:
 
 //
 //
-CK_RV do_WrapUnwrapAES_CBC( void )
+CK_RV do_WrapUnwrapAES_CBC(CK_ULONG key_len)
 {
        CK_BYTE             data1[BIG_REQUEST];
        CK_BYTE             data2[BIG_REQUEST];
@@ -1255,7 +1263,7 @@ CK_RV do_WrapUnwrapAES_CBC( void )
        CK_ULONG            wrapped_data_len;
        CK_ULONG            i;
        CK_ULONG            len1, len2;
-       CK_RV               rc, key_size = AES_KEY_SIZE_256;
+       CK_RV               rc, key_size = key_len;
        CK_ATTRIBUTE        key_gen_tmpl[] = {
                {CKA_VALUE_LEN, &key_size, sizeof(CK_ULONG) }
        };
@@ -1449,7 +1457,7 @@ CK_RV do_WrapUnwrapAES_CBC( void )
 
 //
 //
-CK_RV do_WrapUnwrapAES_CBC_PAD( void )
+CK_RV do_WrapUnwrapAES_CBC_PAD(CK_ULONG key_len)
 {
        CK_BYTE             original[BIG_REQUEST];
        CK_BYTE             cipher  [BIG_REQUEST + AES_BLOCK_SIZE];
@@ -1470,7 +1478,7 @@ CK_RV do_WrapUnwrapAES_CBC_PAD( void )
        CK_ULONG            wrapped_data_len;
        CK_ULONG            i;
        CK_ULONG            orig_len, cipher_len, decipher_len;
-       CK_RV               rc, key_size = AES_KEY_SIZE_256;
+       CK_RV               rc, key_size = key_len;
        CK_ATTRIBUTE        key_gen_tmpl[] = {
                {CKA_VALUE_LEN, &key_size, sizeof(CK_ULONG) }
        };
@@ -1725,86 +1733,89 @@ CK_RV aes_functions()
 {
        SYSTEMTIME t1, t2;
        CK_RV rc;
-
-       GetSystemTime(&t1);
-       rc = do_EncryptAES_ECB();
-       if (rc) {
-               PRINT_ERR("ERROR do_EncryptAES_ECB failed, rc = 0x%lx\n", rc);
-               if (!no_stop)
-                       return rc;
-       }
-       GetSystemTime(&t2);
-       process_time( t1, t2 );
-
-       GetSystemTime(&t1);
-       rc = do_EncryptAES_CBC();
-       if (rc) {
-               PRINT_ERR("ERROR do_EncryptAES_CBC failed, rc = 0x%lx\n", rc);
-               if (!no_stop)
-                       return rc;
-       }
-       GetSystemTime(&t2);
-       process_time( t1, t2 );
-
-       GetSystemTime(&t1);
-       rc = do_EncryptAES_Multipart_ECB();
-       if (rc) {
-               PRINT_ERR("ERROR do_EncryptAES_Multipart_ECB failed, rc = 
0x%lx\n", rc);
-               if (!no_stop)
-                       return rc;
-       }
-       GetSystemTime(&t2);
-       process_time( t1, t2 );
-
-       GetSystemTime(&t1);
-       rc = do_EncryptAES_Multipart_CBC();
-       if (rc) {
-               PRINT_ERR("ERROR do_EncryptAES_Multipart_CBC failed, rc = 
0x%lx\n", rc);
-               if (!no_stop)
-                       return rc;
-       }
-       GetSystemTime(&t2);
-       process_time( t1, t2 );
-
-       GetSystemTime(&t1);
-       rc = do_EncryptAES_Multipart_CBC_PAD();
-       if (rc) {
-               PRINT_ERR("ERROR do_EncryptAES_Multipart_CBC_PAD failed, rc = 
0x%lx\n", rc);
-               if (!no_stop)
-                       return rc;
-       }
-       GetSystemTime(&t2);
-       process_time( t1, t2 );
-
-       GetSystemTime(&t1);
-       rc = do_WrapUnwrapAES_ECB();
-       if (rc) {
-               PRINT_ERR("ERROR do_WrapUnwrapAES_EBC failed, rc = 0x%lx\n", 
rc);
-               if (!no_stop)
-                       return rc;
-       }
-       GetSystemTime(&t2);
-       process_time( t1, t2 );
-
-       GetSystemTime(&t1);
-       rc = do_WrapUnwrapAES_CBC();
-       if (rc) {
-               PRINT_ERR("ERROR do_WrapUnwrapAES_CBC failed, rc = 0x%lx\n", 
rc);
-               if (!no_stop)
-                       return rc;
-       }
-       GetSystemTime(&t2);
-       process_time( t1, t2 );
-
-       GetSystemTime(&t1);
-       rc = do_WrapUnwrapAES_CBC_PAD();
-       if (rc) {
-               PRINT_ERR("ERROR do_WrapUnwrapAES_CBC_PAD failed, rc = 
0x%lx\n", rc);
-               if (!no_stop)
-                       return rc;
+       CK_ULONG i, key_lens[] = { AES_KEY_SIZE_128, AES_KEY_SIZE_192, 
AES_KEY_SIZE_256 };
+
+       for (i = 0; i < 3; i++) {
+               GetSystemTime(&t1);
+               rc = do_EncryptAES_ECB(key_lens[i]);
+               if (rc) {
+                       PRINT_ERR("ERROR do_EncryptAES_ECB failed, rc = 
0x%lx\n", rc);
+                       if (!no_stop)
+                               return rc;
+               }
+               GetSystemTime(&t2);
+               process_time( t1, t2 );
+
+               GetSystemTime(&t1);
+               rc = do_EncryptAES_CBC(key_lens[i]);
+               if (rc) {
+                       PRINT_ERR("ERROR do_EncryptAES_CBC failed, rc = 
0x%lx\n", rc);
+                       if (!no_stop)
+                               return rc;
+               }
+               GetSystemTime(&t2);
+               process_time( t1, t2 );
+
+               GetSystemTime(&t1);
+               rc = do_EncryptAES_Multipart_ECB(key_lens[i]);
+               if (rc) {
+                       PRINT_ERR("ERROR do_EncryptAES_Multipart_ECB failed, rc 
= 0x%lx\n", rc);
+                       if (!no_stop)
+                               return rc;
+               }
+               GetSystemTime(&t2);
+               process_time( t1, t2 );
+
+               GetSystemTime(&t1);
+               rc = do_EncryptAES_Multipart_CBC(key_lens[i]);
+               if (rc) {
+                       PRINT_ERR("ERROR do_EncryptAES_Multipart_CBC failed, rc 
= 0x%lx\n", rc);
+                       if (!no_stop)
+                               return rc;
+               }
+               GetSystemTime(&t2);
+               process_time( t1, t2 );
+
+               GetSystemTime(&t1);
+               rc = do_EncryptAES_Multipart_CBC_PAD(key_lens[i]);
+               if (rc) {
+                       PRINT_ERR("ERROR do_EncryptAES_Multipart_CBC_PAD 
failed, rc = 0x%lx\n", rc);
+                       if (!no_stop)
+                               return rc;
+               }
+               GetSystemTime(&t2);
+               process_time( t1, t2 );
+
+               GetSystemTime(&t1);
+               rc = do_WrapUnwrapAES_ECB(key_lens[i]);
+               if (rc) {
+                       PRINT_ERR("ERROR do_WrapUnwrapAES_EBC failed, rc = 
0x%lx\n", rc);
+                       if (!no_stop)
+                               return rc;
+               }
+               GetSystemTime(&t2);
+               process_time( t1, t2 );
+
+               GetSystemTime(&t1);
+               rc = do_WrapUnwrapAES_CBC(key_lens[i]);
+               if (rc) {
+                       PRINT_ERR("ERROR do_WrapUnwrapAES_CBC failed, rc = 
0x%lx\n", rc);
+                       if (!no_stop)
+                               return rc;
+               }
+               GetSystemTime(&t2);
+               process_time( t1, t2 );
+
+               GetSystemTime(&t1);
+               rc = do_WrapUnwrapAES_CBC_PAD(key_lens[i]);
+               if (rc) {
+                       PRINT_ERR("ERROR do_WrapUnwrapAES_CBC_PAD failed, rc = 
0x%lx\n", rc);
+                       if (!no_stop)
+                               return rc;
+               }
+               GetSystemTime(&t2);
+               process_time( t1, t2 );
        }
-       GetSystemTime(&t2);
-       process_time( t1, t2 );
 
        return 0;
 }

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Opencryptoki-tech mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opencryptoki-tech

Reply via email to