- fix compile warnings generated by -Wall
- always return a non-zero error code to the command line on test error
- use a macro to send output to stderr when appropriate
- print file/line numbers for any failures

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


 testcases/driver/des_func.c |  474 ++++++++++++++++++++++---------------------
 1 files changed, 238 insertions(+), 236 deletions(-)

diff --git a/testcases/driver/des_func.c b/testcases/driver/des_func.c
index 44a18e1..82be8bb 100755
--- a/testcases/driver/des_func.c
+++ b/testcases/driver/des_func.c
@@ -11,7 +11,7 @@
 
 //
 //
-int do_EncryptCDMF_ECB( void )
+CK_RV do_EncryptCDMF_ECB( void )
 {
        CK_BYTE             data1[BIG_REQUEST];
        CK_BYTE             data2[BIG_REQUEST];
@@ -33,7 +33,7 @@ int do_EncryptCDMF_ECB( void )
        rc = funcs->C_OpenSession( slot_id, flags, NULL, NULL, &session );
        if (rc != CKR_OK) {
                show_error("   C_OpenSession #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -44,7 +44,7 @@ int do_EncryptCDMF_ECB( void )
        rc = funcs->C_Login( session, CKU_USER, user_pin, user_pin_len );
        if (rc != CKR_OK) {
                show_error("   C_Login #1", rc );
-               return FALSE;
+               return rc;
        }
 
        mech.mechanism      = CKM_CDMF_KEY_GEN;
@@ -57,7 +57,7 @@ int do_EncryptCDMF_ECB( void )
        rc = funcs->C_GenerateKey( session, &mech, NULL, 0, &h_key );
        if (rc != CKR_OK) {
                show_error("   C_GenerateKey #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -77,13 +77,13 @@ int do_EncryptCDMF_ECB( void )
        rc = funcs->C_EncryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_EncryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        rc = funcs->C_Encrypt( session, data1, len1, data1, &len1 );
        if (rc != CKR_OK) {
                show_error("   C_Encrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
        // now, decrypt the data
@@ -91,41 +91,41 @@ int do_EncryptCDMF_ECB( void )
        rc = funcs->C_DecryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_DecryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        rc = funcs->C_Decrypt( session, data1, len1, data1, &len1 );
        if (rc != CKR_OK) {
                show_error("   C_Decrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
        if (len1 != len2) {
                printf("   ERROR:  lengths don't match\n");
-               return FALSE;
+               return -1;
        }
 
        for (i=0; i <len1; i++) {
                if (data1[i] != data2[i]) {
                        printf("   ERROR:  mismatch at byte %ld\n", i );
-                       return FALSE;
+                       return -1;
                }
        }
 
        rc = funcs->C_CloseAllSessions( slot_id );
        if (rc != CKR_OK) {
                show_error("   C_CloseAllSessions #1", rc );
-               return FALSE;
+               return rc;
        }
 
        printf("Looks okay...\n");
-       return TRUE;
+       return 0;
 }
 
 
 //
 //
-int do_EncryptCDMF_CBC( void )
+CK_RV do_EncryptCDMF_CBC( void )
 {
        CK_BYTE             data1[BIG_REQUEST];
        CK_BYTE             data2[BIG_REQUEST];
@@ -148,7 +148,7 @@ int do_EncryptCDMF_CBC( void )
        rc = funcs->C_OpenSession( slot_id, flags, NULL, NULL, &session );
        if (rc != CKR_OK) {
                show_error("   C_OpenSession #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -159,7 +159,7 @@ int do_EncryptCDMF_CBC( void )
        rc = funcs->C_Login( session, CKU_USER, user_pin, user_pin_len );
        if (rc != CKR_OK) {
                show_error("   C_Login #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -173,7 +173,7 @@ int do_EncryptCDMF_CBC( void )
        rc = funcs->C_GenerateKey( session, &mech, NULL, 0, &h_key );
        if (rc != CKR_OK) {
                show_error("   C_GenerateKey #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -195,13 +195,13 @@ int do_EncryptCDMF_CBC( void )
        rc = funcs->C_EncryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_EncryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        rc = funcs->C_Encrypt( session, data1, len1, data1, &len1 );
        if (rc != CKR_OK) {
                show_error("   C_Encrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -210,35 +210,35 @@ int do_EncryptCDMF_CBC( void )
        rc = funcs->C_DecryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_DecryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        rc = funcs->C_Decrypt( session, data1, len1, data1, &len1 );
        if (rc != CKR_OK) {
                show_error("   C_Decrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
        if (len1 != len2) {
                printf("   ERROR:  lengths don't match\n");
-               return FALSE;
+               return -1;
        }
 
        for (i=0; i <len1; i++) {
                if (data1[i] != data2[i]) {
                        printf("   ERROR:  mismatch at byte %ld\n", i );
-                       return FALSE;
+                       return -1;
                }
        }
 
        rc = funcs->C_CloseAllSessions( slot_id );
        if (rc != CKR_OK) {
                show_error("   C_CloseAllSessions #1", rc );
-               return FALSE;
+               return rc;
        }
 
        printf("Looks okay...\n");
-       return TRUE;
+       return 0;
 }
 
 
@@ -246,7 +246,7 @@ int do_EncryptCDMF_CBC( void )
 
 //
 //
-int do_EncryptDES_ECB( void )
+CK_RV do_EncryptDES_ECB( void )
 {
        CK_BYTE             data1[BIG_REQUEST];
        CK_BYTE             data2[BIG_REQUEST];
@@ -259,7 +259,7 @@ int do_EncryptDES_ECB( void )
        CK_ULONG            user_pin_len;
        CK_ULONG            i;
        CK_ULONG            len1, len2;
-       CK_RV               rc;
+       CK_RV               rc, loc_rc;
 
        printf("do_EncryptDES_ECB...\n");
 
@@ -268,7 +268,7 @@ int do_EncryptDES_ECB( void )
        rc = funcs->C_OpenSession( slot_id, flags, NULL, NULL, &session );
        if (rc != CKR_OK) {
                show_error("   C_OpenSession #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -279,7 +279,7 @@ int do_EncryptDES_ECB( void )
        rc = funcs->C_Login( session, CKU_USER, user_pin, user_pin_len );
        if (rc != CKR_OK) {
                show_error("   C_Login #1", rc );
-               return FALSE;
+               return rc;
        }
 
        mech.mechanism      = CKM_DES_KEY_GEN;
@@ -350,25 +350,25 @@ int do_EncryptDES_ECB( void )
        rc = funcs->C_CloseAllSessions( slot_id );
        if (rc != CKR_OK) {
                show_error("   C_CloseAllSessions #1", rc );
-               return FALSE;
+               return rc;
        }
 
        printf("Looks okay...\n");
 
-       return TRUE;
+       return 0;
 
 error:
-       rc = funcs->C_CloseSession (session);
-       if (rc != CKR_OK)
-               show_error ("   C_CloseSession #2", rc);
+       loc_rc = funcs->C_CloseSession (session);
+       if (loc_rc != CKR_OK)
+               show_error ("   C_CloseSession #2", loc_rc);
 
-       return FALSE;
+       return rc;
 }
 
 
 //
 //
-int do_EncryptDES_Multipart_ECB( void )
+CK_RV do_EncryptDES_Multipart_ECB( void )
 {
        CK_BYTE             original[BIG_REQUEST];
        CK_BYTE             crypt1  [BIG_REQUEST];
@@ -387,7 +387,7 @@ int do_EncryptDES_Multipart_ECB( void )
        CK_ULONG            orig_len;
        CK_ULONG            crypt1_len, crypt2_len, decrypt1_len, decrypt2_len;
        CK_ULONG            tmp;
-       CK_RV               rc;
+       CK_RV               rc, loc_rc;
 
        printf("do_EncryptDES_Multipart_ECB...\n");
 
@@ -396,7 +396,7 @@ int do_EncryptDES_Multipart_ECB( void )
        rc = funcs->C_OpenSession( slot_id, flags, NULL, NULL, &session );
        if (rc != CKR_OK) {
                show_error("   C_OpenSession #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -608,24 +608,24 @@ int do_EncryptDES_Multipart_ECB( void )
        rc = funcs->C_CloseAllSessions( slot_id );
        if (rc != CKR_OK) {
                show_error("   C_CloseAllSessions #1", rc );
-               return FALSE;
+               return rc;
        }
 
        printf("Looks okay...\n");
-       return TRUE;
+       return 0;
 
 error:
-       rc = funcs->C_CloseSession (session);
-       if (rc != CKR_OK)
-               show_error ("   C_CloseSession #2", rc);
+       loc_rc = funcs->C_CloseSession (session);
+       if (loc_rc != CKR_OK)
+               show_error ("   C_CloseSession #2", loc_rc);
 
-       return FALSE;
+       return rc;
 }
 
 
 //
 //
-int do_EncryptDES_CBC( void )
+CK_RV do_EncryptDES_CBC( void )
 {
        CK_BYTE             data1[BIG_REQUEST];
        CK_BYTE             data2[BIG_REQUEST];
@@ -648,7 +648,7 @@ int do_EncryptDES_CBC( void )
        rc = funcs->C_OpenSession( slot_id, flags, NULL, NULL, &session );
        if (rc != CKR_OK) {
                show_error("   C_OpenSession #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -659,7 +659,7 @@ int do_EncryptDES_CBC( void )
        rc = funcs->C_Login( session, CKU_USER, user_pin, user_pin_len );
        if (rc != CKR_OK) {
                show_error("   C_Login #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -673,7 +673,7 @@ int do_EncryptDES_CBC( void )
        rc = funcs->C_GenerateKey( session, &mech, NULL, 0, &h_key );
        if (rc != CKR_OK) {
                show_error("   C_GenerateKey #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -695,13 +695,13 @@ int do_EncryptDES_CBC( void )
        rc = funcs->C_EncryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_EncryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        rc = funcs->C_Encrypt( session, data1, len1, data1, &len1 );
        if (rc != CKR_OK) {
                show_error("   C_Encrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -710,41 +710,41 @@ int do_EncryptDES_CBC( void )
        rc = funcs->C_DecryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_DecryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        rc = funcs->C_Decrypt( session, data1, len1, data1, &len1 );
        if (rc != CKR_OK) {
                show_error("   C_Decrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
        if (len1 != len2) {
                printf("   ERROR:  lengths don't match\n");
-               return FALSE;
+               return -1;
        }
 
        for (i=0; i <len1; i++) {
                if (data1[i] != data2[i]) {
                        printf("   ERROR:  mismatch at byte %ld\n", i );
-                       return FALSE;
+                       return -1;
                }
        }
 
        rc = funcs->C_CloseAllSessions( slot_id );
        if (rc != CKR_OK) {
                show_error("   C_CloseAllSessions #1", rc );
-               return FALSE;
+               return rc;
        }
 
        printf("Looks okay...\n");
-       return TRUE;
+       return 0;
 }
 
 
 //
 //
-int do_EncryptDES_Multipart_CBC( void )
+CK_RV do_EncryptDES_Multipart_CBC( void )
 {
        CK_BYTE             original[BIG_REQUEST];
        CK_BYTE             crypt1  [BIG_REQUEST];
@@ -773,7 +773,7 @@ int do_EncryptDES_Multipart_CBC( void )
        rc = funcs->C_OpenSession( slot_id, flags, NULL, NULL, &session );
        if (rc != CKR_OK) {
                show_error("   C_OpenSession #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -784,7 +784,7 @@ int do_EncryptDES_Multipart_CBC( void )
        rc = funcs->C_Login( session, CKU_USER, user_pin, user_pin_len );
        if (rc != CKR_OK) {
                show_error("   C_Login #1", rc );
-               return FALSE;
+               return rc;
        }
 
        mech.mechanism      = CKM_DES_KEY_GEN;
@@ -797,7 +797,7 @@ int do_EncryptDES_Multipart_CBC( void )
        rc = funcs->C_GenerateKey( session, &mech, NULL, 0, &h_key );
        if (rc != CKR_OK) {
                show_error("   C_GenerateKey #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -817,7 +817,7 @@ int do_EncryptDES_Multipart_CBC( void )
        rc = funcs->C_EncryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_EncryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        // use normal ecb mode to encrypt data1
@@ -826,7 +826,7 @@ int do_EncryptDES_Multipart_CBC( void )
        rc = funcs->C_Encrypt( session, original, orig_len, crypt1, &crypt1_len 
);
        if (rc != CKR_OK) {
                show_error("   C_Encrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
        // use multipart cbc mode to encrypt data2 in 1024 byte chunks
@@ -834,7 +834,7 @@ int do_EncryptDES_Multipart_CBC( void )
        rc = funcs->C_EncryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_EncryptInit #2", rc );
-               return FALSE;
+               return rc;
        }
 
        i = k = 0;
@@ -855,7 +855,7 @@ int do_EncryptDES_Multipart_CBC( void )
                                &crypt2[k],   &tmp );
                if (rc != CKR_OK) {
                        show_error("   C_EncryptUpdate #1", rc );
-                       return FALSE;
+                       return rc;
                }
 
                k += tmp;
@@ -867,18 +867,18 @@ int do_EncryptDES_Multipart_CBC( void )
        rc = funcs->C_EncryptFinal( session, NULL, &tmp );
        if (rc != CKR_OK) {
                show_error("   C_EncryptFinal #2", rc );
-               return FALSE;
+               return rc;
        }
 
        if (tmp != 0) {
                printf("   ERROR:  EncryptFinal wants to return %ld bytes\n", 
tmp );
-               return FALSE;
+               return -1;
        }
 
 
        if (crypt2_len != crypt1_len) {
                printf("   ERROR:  crypt1_len = %ld, crypt2_len = %ld\n", 
crypt1_len, crypt2_len );
-               return FALSE;
+               return -1;
        }
 
        // compare both encrypted blocks.  they'd better be equal
@@ -886,7 +886,7 @@ int do_EncryptDES_Multipart_CBC( void )
        for (i=0; i < crypt1_len; i++) {
                if (crypt1[i] != crypt2[i]) {
                        printf("   ERROR:  mismatch.  crypt1 != crypt2 at byte 
%ld\n", i );
-                       return FALSE;
+                       return -1;
                }
        }
 
@@ -897,14 +897,14 @@ int do_EncryptDES_Multipart_CBC( void )
        rc = funcs->C_DecryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_DecryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        decrypt1_len = sizeof(decrypt1);
        rc = funcs->C_Decrypt( session, crypt1, crypt1_len, decrypt1, 
&decrypt1_len );
        if (rc != CKR_OK) {
                show_error("   C_Decrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
        // use multipart cbc mode to encrypt data2 in 1024 byte chunks
@@ -912,7 +912,7 @@ int do_EncryptDES_Multipart_CBC( void )
        rc = funcs->C_DecryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_DecryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -934,7 +934,7 @@ int do_EncryptDES_Multipart_CBC( void )
                                &decrypt2[k], &tmp );
                if (rc != CKR_OK) {
                        show_error("   C_DecryptUpdate #1", rc );
-                       return FALSE;
+                       return rc;
                }
 
                k += tmp;
@@ -946,17 +946,17 @@ int do_EncryptDES_Multipart_CBC( void )
        rc = funcs->C_DecryptFinal( session, NULL, &tmp );
        if (rc != CKR_OK) {
                show_error("   C_DecryptFinal #2", rc );
-               return FALSE;
+               return rc;
        }
 
        if (tmp != 0) {
                printf("   ERROR:  DecryptFinal wants to return %ld bytes\n", 
tmp );
-               return FALSE;
+               return -1;
        }
 
        if (decrypt2_len != decrypt1_len) {
                printf("   ERROR:  decrypt1_len = %ld, decrypt2_len = %ld\n", 
decrypt1_len, decrypt2_len );
-               return FALSE;
+               return -1;
        }
 
        // compare both decrypted blocks.  they'd better be equal
@@ -964,7 +964,7 @@ int do_EncryptDES_Multipart_CBC( void )
        for (i=0; i < decrypt1_len; i++) {
                if (crypt1[i] != crypt2[i]) {
                        printf("   ERROR:  mismatch.  decrypt1 != decrypt2 at 
byte %ld\n", i );
-                       return FALSE;
+                       return -1;
                }
        }
 
@@ -973,7 +973,7 @@ int do_EncryptDES_Multipart_CBC( void )
        for (i=0; i < orig_len; i++) {
                if (original[i] != decrypt1[i]) {
                        printf("   ERROR:  decrypted mismatch: original != 
decrypt at byte %ld\n", i );
-                       return FALSE;
+                       return -1;
                }
        }
 
@@ -981,16 +981,16 @@ int do_EncryptDES_Multipart_CBC( void )
        rc = funcs->C_CloseAllSessions( slot_id );
        if (rc != CKR_OK) {
                show_error("   C_CloseAllSessions #1", rc );
-               return FALSE;
+               return rc;
        }
 
        printf("Looks okay...\n");
-       return TRUE;
+       return 0;
 }
 
 //
 //
-int do_EncryptDES_CBC_PAD( void )
+CK_RV do_EncryptDES_CBC_PAD( void )
 {
        CK_BYTE             original[BIG_REQUEST];
        CK_BYTE             crypt[BIG_REQUEST + 8];
@@ -1015,7 +1015,7 @@ int do_EncryptDES_CBC_PAD( void )
        rc = funcs->C_OpenSession( slot_id, flags, NULL, NULL, &session );
        if (rc != CKR_OK) {
                show_error("   C_OpenSession #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1026,7 +1026,7 @@ int do_EncryptDES_CBC_PAD( void )
        rc = funcs->C_Login( session, CKU_USER, user_pin, user_pin_len );
        if (rc != CKR_OK) {
                show_error("   C_Login #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1040,7 +1040,7 @@ int do_EncryptDES_CBC_PAD( void )
        rc = funcs->C_GenerateKey( session, &mech, NULL, 0, &h_key );
        if (rc != CKR_OK) {
                show_error("   C_GenerateKey #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1063,13 +1063,13 @@ int do_EncryptDES_CBC_PAD( void )
        rc = funcs->C_EncryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_EncryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        rc = funcs->C_Encrypt( session, original, orig_len, crypt, &crypt_len );
        if (rc != CKR_OK) {
                show_error("   C_Encrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1078,42 +1078,42 @@ int do_EncryptDES_CBC_PAD( void )
        rc = funcs->C_DecryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_DecryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        decrypt_len = sizeof(decrypt);
        rc = funcs->C_Decrypt( session, crypt, crypt_len, decrypt, &decrypt_len 
);
        if (rc != CKR_OK) {
                show_error("   C_Decrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
        if (orig_len != decrypt_len) {
                printf("   ERROR:  lengths don't match\n");
-               return FALSE;
+               return -1;
        }
 
        for (i=0; i <orig_len; i++) {
                if (original[i] != decrypt[i]) {
                        printf("   ERROR:  mismatch at byte %ld\n", i );
-                       return FALSE;
+                       return -1;
                }
        }
 
        rc = funcs->C_CloseAllSessions( slot_id );
        if (rc != CKR_OK) {
                show_error("   C_CloseAllSessions #1", rc );
-               return FALSE;
+               return rc;
        }
 
        printf("Looks okay...\n");
-       return TRUE;
+       return 0;
 }
 
 
 //
 //
-int do_EncryptDES_Multipart_CBC_PAD( void )
+CK_RV do_EncryptDES_Multipart_CBC_PAD( void )
 {
        CK_BYTE             original[BIG_REQUEST];
 
@@ -1145,7 +1145,7 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        rc = funcs->C_OpenSession( slot_id, flags, NULL, NULL, &session );
        if (rc != CKR_OK) {
                show_error("   C_OpenSession #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1156,7 +1156,7 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        rc = funcs->C_Login( session, CKU_USER, user_pin, user_pin_len );
        if (rc != CKR_OK) {
                show_error("   C_Login #1", rc );
-               return FALSE;
+               return rc;
        }
 
        mech.mechanism      = CKM_DES_KEY_GEN;
@@ -1169,7 +1169,7 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        rc = funcs->C_GenerateKey( session, &mech, NULL, 0, &h_key );
        if (rc != CKR_OK) {
                show_error("   C_GenerateKey #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1190,7 +1190,7 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        rc = funcs->C_EncryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_EncryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        // use normal ecb mode to encrypt data1
@@ -1199,7 +1199,7 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        rc = funcs->C_Encrypt( session, original, orig_len, crypt1, &crypt1_len 
);
        if (rc != CKR_OK) {
                show_error("   C_Encrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
        // use multipart cbc mode to encrypt data2 in chunks
@@ -1207,7 +1207,7 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        rc = funcs->C_EncryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_EncryptInit #2", rc );
-               return FALSE;
+               return rc;
        }
 
        i = k = 0;
@@ -1227,7 +1227,7 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
                                &crypt2[k],    &tmp );
                if (rc != CKR_OK) {
                        show_error("   C_EncryptUpdate #1", rc );
-                       return FALSE;
+                       return rc;
                }
 
                k += tmp;
@@ -1239,12 +1239,12 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        rc = funcs->C_EncryptFinal( session, &crypt2[k], &tmp );
        if (rc != CKR_OK) {
                show_error("   C_EncryptFinal #2", rc );
-               return FALSE;
+               return rc;
        }
 
        if (tmp == 0) {
                printf("   ERROR:  expected EncryptFinal to return non-zero 
length\n");
-               return FALSE;
+               return -1;
        }
 
        crypt2_len = k + tmp;
@@ -1252,7 +1252,7 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        if (crypt2_len != crypt1_len) {
                printf("   ERROR:  encrypted lengths don't match\n");
                printf("           crypt2_len == %ld,  crypt1_len == %ld\n", 
crypt2_len, crypt1_len );
-               return FALSE;
+               return -1;
        }
 
        // compare both encrypted blocks.  they'd better be equal
@@ -1260,7 +1260,7 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        for (i=0; i < crypt2_len; i++) {
                if (crypt1[i] != crypt2[i]) {
                        printf("   ERROR:  encrypted mismatch: crypt1 != crypt2 
at byte %ld\n", i );
-                       return FALSE;
+                       return -1;
                }
        }
 
@@ -1271,14 +1271,14 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        rc = funcs->C_DecryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_DecryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        decrypt1_len = sizeof(decrypt1);
        rc = funcs->C_Decrypt( session, crypt1, crypt1_len, decrypt1, 
&decrypt1_len );
        if (rc != CKR_OK) {
                show_error("   C_Decrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
        // use multipart cbc mode to encrypt data2 in 1024 byte chunks
@@ -1286,7 +1286,7 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        rc = funcs->C_DecryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_DecryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1307,7 +1307,7 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
                                &decrypt2[k], &len );
                if (rc != CKR_OK) {
                        show_error("   C_DecryptUpdate #1", rc );
-                       return FALSE;
+                       return rc;
                }
 
                k += len;
@@ -1319,7 +1319,7 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        rc = funcs->C_DecryptFinal( session, &decrypt2[k], &tmp );
        if (rc != CKR_OK) {
                show_error("   C_DecryptFinal #2", rc );
-               return FALSE;
+               return rc;
        }
 
        // tmp may or may not be 0 depending on whether or not the final
@@ -1331,13 +1331,13 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        if (decrypt2_len != decrypt1_len) {
                printf("   ERROR:  decrypted lengths don't match\n");
                printf("           decrypt1_len == %ld,  decrypt2_len == 
%ld\n", decrypt1_len, decrypt2_len );
-               return FALSE;
+               return -1;
        }
 
        if (decrypt2_len != orig_len) {
                printf("   ERROR:  decrypted lengths don't match the 
original\n");
                printf("           decrypt_len == %ld,  orig_len == %ld\n", 
decrypt1_len, orig_len );
-               return FALSE;
+               return -1;
        }
 
 
@@ -1346,7 +1346,7 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        for (i=0; i < decrypt1_len; i++) {
                if (decrypt1[i] != decrypt2[i]) {
                        printf("   ERROR:  decrypted mismatch: data1 != data2 
at byte %ld\n", i );
-                       return FALSE;
+                       return -1;
                }
        }
 
@@ -1355,7 +1355,7 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        for (i=0; i < orig_len; i++) {
                if (original[i] != decrypt2[i]) {
                        printf("   ERROR:  decrypted mismatch: original != 
decrypted at byte %ld\n", i );
-                       return FALSE;
+                       return -1;
                }
        }
 
@@ -1363,17 +1363,17 @@ int do_EncryptDES_Multipart_CBC_PAD( void )
        rc = funcs->C_CloseAllSessions( slot_id );
        if (rc != CKR_OK) {
                show_error("   C_CloseAllSessions #1", rc );
-               return FALSE;
+               return rc;
        }
 
        printf("Looks okay...\n");
-       return TRUE;
+       return 0;
 }
 
 
 //
 //
-int do_WrapUnwrapDES_ECB( void )
+CK_RV do_WrapUnwrapDES_ECB( void )
 {
        CK_BYTE             data1[BIG_REQUEST];
        CK_BYTE             data2[BIG_REQUEST];
@@ -1390,7 +1390,7 @@ int do_WrapUnwrapDES_ECB( void )
        CK_ULONG            wrapped_data_len;
        CK_ULONG            i;
        CK_ULONG            len1, len2;
-       CK_RV               rc;
+       CK_RV               rc, loc_rc;
 
        CK_OBJECT_CLASS     key_class = CKO_SECRET_KEY;
        CK_KEY_TYPE         key_type  = CKK_DES;
@@ -1409,7 +1409,7 @@ int do_WrapUnwrapDES_ECB( void )
        rc = funcs->C_OpenSession( slot_id, flags, NULL, NULL, &session );
        if (rc != CKR_OK) {
                show_error("   C_OpenSession #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1571,24 +1571,24 @@ int do_WrapUnwrapDES_ECB( void )
        rc = funcs->C_CloseAllSessions( slot_id );
        if (rc != CKR_OK) {
                show_error("   C_CloseAllSessions #1", rc );
-               return FALSE;
+               return rc;
        }
 
        printf("Looks okay...\n");
-       return TRUE;
+       return 0;
 
 error:
-       rc = funcs->C_CloseSession (session);
-       if (rc != CKR_OK)
-               show_error ("   C_CloseSession #2", rc);
+       loc_rc = funcs->C_CloseSession (session);
+       if (loc_rc != CKR_OK)
+               show_error ("   C_CloseSession #2", loc_rc);
 
-       return FALSE;      
+       return rc;         
 }
 
 
 //
 //
-int do_WrapUnwrapDES_CBC( void )
+CK_RV do_WrapUnwrapDES_CBC( void )
 {
        CK_BYTE             data1[BIG_REQUEST];
        CK_BYTE             data2[BIG_REQUEST];
@@ -1625,7 +1625,7 @@ int do_WrapUnwrapDES_CBC( void )
        rc = funcs->C_OpenSession( slot_id, flags, NULL, NULL, &session );
        if (rc != CKR_OK) {
                show_error("   C_OpenSession #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1636,7 +1636,7 @@ int do_WrapUnwrapDES_CBC( void )
        rc = funcs->C_Login( session, CKU_USER, user_pin, user_pin_len );
        if (rc != CKR_OK) {
                show_error("   C_Login #1", rc );
-               return FALSE;
+               return rc;
        }
 
        mech.mechanism      = CKM_DES_KEY_GEN;
@@ -1649,13 +1649,13 @@ int do_WrapUnwrapDES_CBC( void )
        rc = funcs->C_GenerateKey( session, &mech, NULL, 0, &h_key );
        if (rc != CKR_OK) {
                show_error("   C_GenerateKey #1", rc );
-               return FALSE;
+               return rc;
        }
 
        rc = funcs->C_GenerateKey( session, &mech, NULL, 0, &w_key );
        if (rc != CKR_OK) {
                show_error("   C_GenerateKey #2", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1675,13 +1675,13 @@ int do_WrapUnwrapDES_CBC( void )
        rc = funcs->C_EncryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_EncryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        rc = funcs->C_Encrypt( session, data1, len1, data1, &len1 );
        if (rc != CKR_OK) {
                show_error("   C_Encrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1694,7 +1694,7 @@ int do_WrapUnwrapDES_CBC( void )
                        (CK_BYTE *)&wrapped_data, &wrapped_data_len );
        if (rc != CKR_OK) {
                show_error("   C_WrapKey #1", rc );
-               return FALSE;
+               return rc;
        }
 
        rc = funcs->C_UnwrapKey( session, &mech,
@@ -1704,7 +1704,7 @@ int do_WrapUnwrapDES_CBC( void )
                        &uw_key );
        if (rc != CKR_OK) {
                show_error("   C_UnWrapKey #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1713,24 +1713,24 @@ int do_WrapUnwrapDES_CBC( void )
        rc = funcs->C_DecryptInit( session, &mech, uw_key );
        if (rc != CKR_OK) {
                show_error("   C_DecryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        rc = funcs->C_Decrypt( session, data1, len1, data1, &len1 );
        if (rc != CKR_OK) {
                show_error("   C_Decrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
        if (len1 != len2) {
                printf("   ERROR:  lengths don't match\n");
-               return FALSE;
+               return -1;
        }
 
        for (i=0; i <len1; i++) {
                if (data1[i] != data2[i]) {
                        printf("   ERROR:  mismatch at byte %ld\n", i );
-                       return FALSE;
+                       return -1;
                }
        }
 
@@ -1771,7 +1771,7 @@ int do_WrapUnwrapDES_CBC( void )
                rc = funcs->C_CreateObject( session, tmpl, 10, &priv_key );
                if (rc != CKR_OK) {
                        show_error("   C_CreateObject #1", rc );
-                       return FALSE;
+                       return rc;
                }
 
                rc = funcs->C_WrapKey( session,  &mech,
@@ -1780,24 +1780,24 @@ int do_WrapUnwrapDES_CBC( void )
                if (rc != CKR_KEY_NOT_WRAPPABLE) {
                        show_error("   C_WrapKey #2", rc );
                        printf("   Expected CKR_KEY_NOT_WRAPPABLE\n" );
-                       return FALSE;
+                       return rc;
                }
        }
 
        rc = funcs->C_CloseAllSessions( slot_id );
        if (rc != CKR_OK) {
                show_error("   C_CloseAllSessions #1", rc );
-               return FALSE;
+               return rc;
        }
 
        printf("Looks okay...\n");
-       return TRUE;
+       return 0;
 }
 
 
 //
 //
-int do_WrapUnwrapDES_CBC_PAD( void )
+CK_RV do_WrapUnwrapDES_CBC_PAD( void )
 {
        CK_BYTE             original[BIG_REQUEST];
        CK_BYTE             cipher  [BIG_REQUEST + 8];
@@ -1837,7 +1837,7 @@ int do_WrapUnwrapDES_CBC_PAD( void )
        rc = funcs->C_OpenSession( slot_id, flags, NULL, NULL, &session );
        if (rc != CKR_OK) {
                show_error("   C_OpenSession #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1848,7 +1848,7 @@ int do_WrapUnwrapDES_CBC_PAD( void )
        rc = funcs->C_Login( session, CKU_USER, user_pin, user_pin_len );
        if (rc != CKR_OK) {
                show_error("   C_Login #1", rc );
-               return FALSE;
+               return rc;
        }
 
        mech.mechanism      = CKM_DES_KEY_GEN;
@@ -1861,13 +1861,13 @@ int do_WrapUnwrapDES_CBC_PAD( void )
        rc = funcs->C_GenerateKey( session, &mech, NULL, 0, &h_key );
        if (rc != CKR_OK) {
                show_error("   C_GenerateKey #1", rc );
-               return FALSE;
+               return rc;
        }
 
        rc = funcs->C_GenerateKey( session, &mech, NULL, 0, &w_key );
        if (rc != CKR_OK) {
                show_error("   C_GenerateKey #2", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1885,14 +1885,14 @@ int do_WrapUnwrapDES_CBC_PAD( void )
        rc = funcs->C_EncryptInit( session, &mech, h_key );
        if (rc != CKR_OK) {
                show_error("   C_EncryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        cipher_len = sizeof(cipher);
        rc = funcs->C_Encrypt( session, original, orig_len, cipher, &cipher_len 
);
        if (rc != CKR_OK) {
                show_error("   C_Encrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1905,7 +1905,7 @@ int do_WrapUnwrapDES_CBC_PAD( void )
                        wrapped_data, &wrapped_data_len );
        if (rc != CKR_OK) {
                show_error("   C_WrapKey #1", rc );
-               return FALSE;
+               return rc;
        }
 
        rc = funcs->C_UnwrapKey( session, &mech,
@@ -1915,7 +1915,7 @@ int do_WrapUnwrapDES_CBC_PAD( void )
                        &uw_key );
        if (rc != CKR_OK) {
                show_error("   C_UnWrapKey #1", rc );
-               return FALSE;
+               return rc;
        }
 
 
@@ -1924,25 +1924,25 @@ int do_WrapUnwrapDES_CBC_PAD( void )
        rc = funcs->C_DecryptInit( session, &mech, uw_key );
        if (rc != CKR_OK) {
                show_error("   C_DecryptInit #1", rc );
-               return FALSE;
+               return rc;
        }
 
        decipher_len = sizeof(decipher);
        rc = funcs->C_Decrypt( session, cipher, cipher_len, decipher, 
&decipher_len );
        if (rc != CKR_OK) {
                show_error("   C_Decrypt #1", rc );
-               return FALSE;
+               return rc;
        }
 
        if (orig_len != decipher_len) {
                printf("   ERROR:  lengths don't match:  %ld vs %ld\n", 
orig_len, decipher_len );
-               return FALSE;
+               return -1;
        }
 
        for (i=0; i < orig_len; i++) {
                if (original[i] != decipher[i]) {
                        printf("   ERROR:  mismatch at byte %ld\n", i );
-                       return FALSE;
+                       return -1;
                }
        }
 
@@ -1977,7 +1977,7 @@ int do_WrapUnwrapDES_CBC_PAD( void )
                                &publ_key, &priv_key );
                if (rc != CKR_OK) {
                        show_error("   C_GenerateKeyPair #1", rc );
-                       return FALSE;
+                       return rc;
                }
 
 
@@ -1990,7 +1990,7 @@ int do_WrapUnwrapDES_CBC_PAD( void )
                                wrapped_data, &wrapped_data_len );
                if (rc != CKR_OK) {
                        show_error("   C_WrapKey #2", rc );
-                       return FALSE;
+                       return rc;
                }
 
                rc = funcs->C_UnwrapKey( session, &mech,
@@ -2000,7 +2000,7 @@ int do_WrapUnwrapDES_CBC_PAD( void )
                                &uw_key );
                if (rc != CKR_OK) {
                        show_error("   C_UnWrapKey #2", rc );
-                       return FALSE;
+                       return rc;
                }
 
                // encrypt something with the public key
@@ -2012,7 +2012,7 @@ int do_WrapUnwrapDES_CBC_PAD( void )
                rc = funcs->C_EncryptInit( session, &mech2, publ_key );
                if (rc != CKR_OK) {
                        show_error("   C_EncryptInit #2", rc );
-                       return FALSE;
+                       return rc;
                }
 
                // for RSA operations, keep the input data size smaller than
@@ -2024,7 +2024,7 @@ int do_WrapUnwrapDES_CBC_PAD( void )
                rc = funcs->C_Encrypt( session, original, orig_len, cipher, 
&cipher_len );
                if (rc != CKR_OK) {
                        show_error("   C_Encrypt #2", rc );
-                       return FALSE;
+                       return rc;
                }
 
                // now, decrypt the data using the unwrapped private key.
@@ -2032,25 +2032,25 @@ int do_WrapUnwrapDES_CBC_PAD( void )
                rc = funcs->C_DecryptInit( session, &mech2, uw_key );
                if (rc != CKR_OK) {
                        show_error("   C_DecryptInit #2", rc );
-                       return FALSE;
+                       return rc;
                }
 
                decipher_len = sizeof(decipher);
                rc = funcs->C_Decrypt( session, cipher, cipher_len, decipher, 
&decipher_len );
                if (rc != CKR_OK) {
                        show_error("   C_Decrypt #2", rc );
-                       return FALSE;
+                       return rc;
                }
 
                if (orig_len != decipher_len) {
                        printf("   ERROR:  lengths don't match:  %ld vs %ld\n", 
orig_len, decipher_len );
-                       return FALSE;
+                       return -1;
                }
 
                for (i=0; i < orig_len; i++) {
                        if (original[i] != decipher[i]) {
                                printf("   ERROR:  mismatch at byte %ld\n", i );
-                               return FALSE;
+                               return -1;
                        }
                }
        }
@@ -2088,7 +2088,7 @@ int do_WrapUnwrapDES_CBC_PAD( void )
                                &publ_key, &priv_key );
                if (rc != CKR_OK) {
                        show_error("   C_GenerateKeyPair #2", rc );
-                       return FALSE;
+                       return rc;
                }
 
 
@@ -2101,7 +2101,7 @@ int do_WrapUnwrapDES_CBC_PAD( void )
                                wrapped_data, &wrapped_data_len );
                if (rc != CKR_OK) {
                        show_error("   C_WrapKey #3", rc );
-                       return FALSE;
+                       return rc;
                }
 
                rc = funcs->C_UnwrapKey( session, &mech,
@@ -2111,7 +2111,7 @@ int do_WrapUnwrapDES_CBC_PAD( void )
                                &uw_key );
                if (rc != CKR_OK) {
                        show_error("   C_UnWrapKey #3", rc );
-                       return FALSE;
+                       return rc;
                }
 
                // sign & verify something to make sure the keys are okay
@@ -2123,7 +2123,7 @@ int do_WrapUnwrapDES_CBC_PAD( void )
                rc = funcs->C_SignInit( session, &mech2, uw_key );
                if (rc != CKR_OK) {
                        show_error("   C_SignInit #1", rc );
-                       return FALSE;
+                       return rc;
                }
 
                // DSA sign operations expect data to be 20 bytes
@@ -2134,7 +2134,7 @@ int do_WrapUnwrapDES_CBC_PAD( void )
                rc = funcs->C_Sign( session, original, orig_len, signature, 
&sig_len );
                if (rc != CKR_OK) {
                        show_error("   C_Sign #1", rc );
-                       return FALSE;
+                       return rc;
                }
 
                // now, verify the signature
@@ -2142,13 +2142,13 @@ int do_WrapUnwrapDES_CBC_PAD( void )
                rc = funcs->C_VerifyInit( session, &mech2, publ_key );
                if (rc != CKR_OK) {
                        show_error("   C_VerifyInit #1", rc );
-                       return FALSE;
+                       return rc;
                }
 
                rc = funcs->C_Verify( session, original, orig_len, signature, 
sig_len );
                if (rc != CKR_OK) {
                        show_error("   C_Verify #1", rc );
-                       return FALSE;
+                       return rc;
                }
        }
 #endif
@@ -2156,66 +2156,24 @@ int do_WrapUnwrapDES_CBC_PAD( void )
        rc = funcs->C_CloseAllSessions( slot_id );
        if (rc != CKR_OK) {
                show_error("   C_CloseAllSessions #1", rc );
-               return FALSE;
-       }
-
-       printf("Looks okay...\n");
-       return TRUE;
-}
-
-int main(int argc, char **argv)
-{
-       CK_C_INITIALIZE_ARGS cinit_args;
-       int rc, i;
-
-       
-       rc = do_ParseArgs(argc, argv);
-       if ( rc != 1)
                return rc;
-
-       printf("Using slot #%lu...\n\n", SLOT_ID );
-       printf("With option: no_init: %d\n", no_init);
-
-       rc = do_GetFunctionList();
-       if (!rc) {
-               fprintf(stderr, "ERROR do_GetFunctionList() Failed , rc = 
0x%0x\n", rc); 
-               return rc;
-       }
-       
-       memset( &cinit_args, 0x0, sizeof(cinit_args) );
-       cinit_args.flags = CKF_OS_LOCKING_OK;
-
-       // SAB Add calls to ALL functions before the C_Initialize gets hit
-
-       funcs->C_Initialize( &cinit_args );
-
-       {
-               CK_SESSION_HANDLE  hsess = 0;
-
-               rc = funcs->C_GetFunctionStatus(hsess);
-               if (rc  != CKR_FUNCTION_NOT_PARALLEL)  
-                       return rc;
-
-               rc = funcs->C_CancelFunction(hsess);
-               if (rc  != CKR_FUNCTION_NOT_PARALLEL)
-                       return rc;
-
        }
 
-       des_functions();
+       printf("Looks okay...\n");
+       return 0;
 }
 
-int des_functions()
+CK_RV des_functions()
 {
        SYSTEMTIME t1, t2;
-       int rc; 
+       CK_RV rc;       
 
 
 #if CDMF
        GetSystemTime(&t1);
        rc = do_EncryptCDMF_ECB();
-       if (!rc) {
-               fprintf (stderr, "ERROR do_EncryptCDMF_CBC failed, rc = 
0x%0x\n", rc);
+       if (rc) {
+               PRINT_ERR("ERROR do_EncryptCDMF_CBC failed, rc = 0x%lx\n", rc);
                if (!no_stop)
                        return rc;
        }
@@ -2224,8 +2182,8 @@ int des_functions()
 
        GetSystemTime(&t1);
        rc = do_EncryptCDMF_CBC();
-       if (!rc) {
-               fprintf (stderr, "ERROR do_EncryptCDMF_CBC failed, rc = 
0x%0x\n", rc);
+       if (rc) {
+               PRINT_ERR("ERROR do_EncryptCDMF_CBC failed, rc = 0x%lx\n", rc);
                if (!no_stop)
                        return rc;
        }
@@ -2236,8 +2194,8 @@ int des_functions()
 
        GetSystemTime(&t1);
        rc = do_EncryptDES_ECB();
-       if (!rc) {
-               fprintf (stderr, "ERROR do_EncryptDES_ECB failed, rc = 
0x%0x\n", rc);
+       if (rc) {
+               PRINT_ERR("ERROR do_EncryptDES_ECB failed, rc = 0x%lx\n", rc);
                if (!no_stop)
                        return rc;
        }
@@ -2246,8 +2204,8 @@ int des_functions()
 
        GetSystemTime(&t1);
        rc = do_EncryptDES_CBC();
-       if (!rc) {
-               fprintf (stderr, "ERROR do_EncryptDES_CBC failed, rc = 
0x%0x\n", rc);
+       if (rc) {
+               PRINT_ERR("ERROR do_EncryptDES_CBC failed, rc = 0x%lx\n", rc);
                if (!no_stop)
                        return rc;
        }
@@ -2257,7 +2215,7 @@ int des_functions()
        GetSystemTime(&t1);
        rc = do_EncryptDES_CBC_PAD();
        if (!rc) {
-               fprintf (stderr, "ERROR do_EncryptDES_CBC_PAD failed, rc = 
0x%0x\n", rc);
+               PRINT_ERR("ERROR do_EncryptDES_CBC_PAD failed, rc = 0x%lx\n", 
rc);
                if (!no_stop)
                        return rc;
        }
@@ -2266,8 +2224,8 @@ int des_functions()
 
        GetSystemTime(&t1);
        rc = do_EncryptDES_Multipart_ECB();
-       if (!rc) {
-               fprintf (stderr, "ERROR do_EncryptDES_imultipart_ECB failed, rc 
= 0x%0x\n", rc);
+       if (rc) {
+               PRINT_ERR("ERROR do_EncryptDES_imultipart_ECB failed, rc = 
0x%lx\n", rc);
                if (!no_stop)
                        return rc;
        }
@@ -2276,8 +2234,8 @@ int des_functions()
 
        GetSystemTime(&t1);
        rc = do_EncryptDES_Multipart_CBC();
-       if (!rc) {
-               fprintf (stderr, "ERROR do_EncryptDES_Multipart_CBC failed, rc 
= 0x%0x\n", rc);
+       if (rc) {
+               PRINT_ERR("ERROR do_EncryptDES_Multipart_CBC failed, rc = 
0x%lx\n", rc);
                if (!no_stop)
                        return rc;
        }
@@ -2286,8 +2244,8 @@ int des_functions()
 
        GetSystemTime(&t1);
        rc = do_EncryptDES_Multipart_CBC_PAD();
-       if (!rc) {
-               fprintf (stderr, "ERROR do_EncryptDES_Multipart_CBC_PAD failed, 
rc = 0x%0x\n", rc);
+       if (rc) {
+               PRINT_ERR("ERROR do_EncryptDES_Multipart_CBC_PAD failed, rc = 
0x%lx\n", rc);
                if (!no_stop)
                        return rc;
        }
@@ -2296,8 +2254,8 @@ int des_functions()
 
        GetSystemTime(&t1);
        rc = do_WrapUnwrapDES_ECB();
-       if (!rc) {
-               fprintf (stderr, "ERROR do_WrapUnwrapDES_ECB failed, rc = 
0x%0x\n", rc);
+       if (rc) {
+               PRINT_ERR("ERROR do_WrapUnwrapDES_ECB failed, rc = 0x%lx\n", 
rc);
                if (!no_stop)
                        return rc;
        }
@@ -2306,8 +2264,8 @@ int des_functions()
 
        GetSystemTime(&t1);
        rc = do_WrapUnwrapDES_CBC();
-       if (!rc) {
-               fprintf (stderr, "ERROR do_WrapUnwrapDES_CBC failed, rc = 
0x%0x\n", rc);
+       if (rc) {
+               PRINT_ERR("ERROR do_WrapUnwrapDES_CBC failed, rc = 0x%lx\n", 
rc);
                if (!no_stop)
                        return rc;
        }
@@ -2316,14 +2274,58 @@ int des_functions()
 #endif
        GetSystemTime(&t1);
        rc = do_WrapUnwrapDES_CBC_PAD();
-       if (!rc) {
-               fprintf (stderr, "ERROR do_WrapUnwrapDES_CBC_PAD failed, rc = 
0x%0x\n", rc);
+       if (rc) {
+               PRINT_ERR("ERROR do_WrapUnwrapDES_CBC_PAD failed, rc = 
0x%lx\n", rc);
                if (!no_stop)
                        return rc;
        }
        GetSystemTime(&t2);
        process_time( t1, t2 );
 
-       return TRUE;
+       return 0;
+}
+
+int main(int argc, char **argv)
+{
+       CK_C_INITIALIZE_ARGS cinit_args;
+       int rc;
+       CK_RV rv;
+       
+       rc = do_ParseArgs(argc, argv);
+       if ( rc != 1)
+               return rc;
+
+       printf("Using slot #%lu...\n\n", SLOT_ID );
+       printf("With option: no_init: %d\n", no_init);
+
+       rc = do_GetFunctionList();
+       if (!rc) {
+               PRINT_ERR("ERROR do_GetFunctionList() Failed , rc = 0x%0x\n", 
rc); 
+               return rc;
+       }
+       
+       memset( &cinit_args, 0x0, sizeof(cinit_args) );
+       cinit_args.flags = CKF_OS_LOCKING_OK;
+
+       // SAB Add calls to ALL functions before the C_Initialize gets hit
+
+       funcs->C_Initialize( &cinit_args );
+
+       {
+               CK_SESSION_HANDLE  hsess = 0;
+
+               rc = funcs->C_GetFunctionStatus(hsess);
+               if (rc  != CKR_FUNCTION_NOT_PARALLEL)  
+                       return rc;
+
+               rc = funcs->C_CancelFunction(hsess);
+               if (rc  != CKR_FUNCTION_NOT_PARALLEL)
+                       return rc;
+
+       }
+
+       rv = des_functions();
+       /* make sure we return non-zero if rv is non-zero */
+       return ((rv==0) || (rv % 256) ? rv : -1);
 }
 

------------------------------------------------------------------------------
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