- 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/rsa_func.c | 442 ++++++++++++++++++++++--------------------- 1 files changed, 223 insertions(+), 219 deletions(-) diff --git a/testcases/driver/rsa_func.c b/testcases/driver/rsa_func.c index 9b3140e..ef2fe1d 100755 --- a/testcases/driver/rsa_func.c +++ b/testcases/driver/rsa_func.c @@ -35,7 +35,7 @@ void hex_dump_to_file(char *str, unsigned char *data, int bytes) // // -int do_GenerateRSAKeyPair( void ) +CK_RV do_GenerateRSAKeyPair( void ) { CK_SLOT_ID slot_id; CK_SESSION_HANDLE session; @@ -44,7 +44,7 @@ int do_GenerateRSAKeyPair( void ) CK_FLAGS flags; CK_BYTE user_pin[PKCS11_MAX_PIN_LEN]; CK_ULONG user_pin_len; - CK_RV rc; + CK_RV rc, loc_rc; printf("do_GenerateRSAKey...\n"); @@ -72,13 +72,13 @@ int do_GenerateRSAKeyPair( void ) rc = funcs->C_OpenSession( slot_id, flags, NULL, NULL, &session ); if (rc != CKR_OK) { show_error(" C_OpenSession #3", rc ); - return FALSE; + return rc; } 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; } rc = funcs->C_GenerateKeyPair( session, &mech, @@ -93,26 +93,26 @@ int do_GenerateRSAKeyPair( void ) rc = funcs->C_CloseSession( session ); if (rc != CKR_OK) { show_error(" C_CloseSession #3", rc ); - return FALSE; + return rc; } } printf("Looks okay...\n"); - return TRUE; + return rc; 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_EncryptRSA_PKCS( void ) +CK_RV do_EncryptRSA_PKCS( void ) { CK_BYTE data1[100]; CK_BYTE data2[256]; @@ -126,7 +126,7 @@ int do_EncryptRSA_PKCS( void ) CK_ULONG user_pin_len; CK_ULONG i; CK_ULONG len1, len2, cipherlen; - CK_RV rc; + CK_RV rc, loc_rc; CK_BYTE pub_exp[] = { 0x3 }; @@ -143,7 +143,7 @@ int do_EncryptRSA_PKCS( 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; } @@ -154,7 +154,7 @@ int do_EncryptRSA_PKCS( 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_RSA_PKCS_KEY_PAIR_GEN; @@ -214,12 +214,12 @@ int do_EncryptRSA_PKCS( void ) printf("Len from encrypt %ld from decrypt %ld \n",len1, len2); //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 ); + PRINT_ERR(" ERROR: mismatch at byte %ld\n", i ); goto error; } } @@ -227,25 +227,25 @@ int do_EncryptRSA_PKCS( 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 rc; error: - rc = funcs->C_CloseAllSessions ( slot_id); - if (rc != CKR_OK) - show_error (" C_CloseAllSessions #1", rc); + loc_rc = funcs->C_CloseAllSessions ( slot_id); + if (loc_rc != CKR_OK) + show_error (" C_CloseAllSessions #1", loc_rc); - return FALSE; + return rc; } // // -int do_EncryptRSA_PKCS_Speed( void ) +CK_RV do_EncryptRSA_PKCS_Speed( void ) { CK_BYTE data1[100]; CK_BYTE data2[256]; @@ -259,7 +259,7 @@ int do_EncryptRSA_PKCS_Speed( void ) CK_ULONG user_pin_len; CK_ULONG i; CK_ULONG len1, len2, cipherlen; - CK_RV rc; + CK_RV rc, loc_rc; SYSTEMTIME t1, t2; CK_BYTE pub_exp[] = { 0x3 }; @@ -277,7 +277,7 @@ int do_EncryptRSA_PKCS_Speed( 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; } @@ -288,7 +288,7 @@ int do_EncryptRSA_PKCS_Speed( 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_RSA_PKCS_KEY_PAIR_GEN; @@ -364,13 +364,13 @@ int do_EncryptRSA_PKCS_Speed( void ) printf("\n"); if (len1 != len2) { - printf(" ERROR: lengths don't match %ld %ld \n",len1,len2); + PRINT_ERR(" ERROR: lengths don't match %ld %ld \n",len1,len2); goto error; } for (i=0; i <len1; i++) { if (data1[i] != data2[i]) { - printf(" ERROR: mismatch at byte %ld\n", i ); + PRINT_ERR(" ERROR: mismatch at byte %ld\n", i ); goto error; } } @@ -378,24 +378,24 @@ int do_EncryptRSA_PKCS_Speed( 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 rc; error: - rc = funcs->C_CloseAllSessions( slot_id ); - if (rc != CKR_OK) - show_error (" C_CloseAllSessions #2", rc); + loc_rc = funcs->C_CloseAllSessions( slot_id ); + if (loc_rc != CKR_OK) + show_error (" C_CloseAllSessions #2", loc_rc); - return FALSE; + return rc; } // // -int do_SignRSA_PKCS( void ) +CK_RV do_SignRSA_PKCS( void ) { CK_BYTE data1[100]; CK_BYTE data2[512]; @@ -409,7 +409,7 @@ int do_SignRSA_PKCS( void ) CK_ULONG user_pin_len; CK_ULONG i; CK_ULONG len1, len2, sig_len; - CK_RV rc; + CK_RV rc, loc_rc; CK_BYTE pub_exp[] = { 0x3 }; @@ -426,7 +426,7 @@ int do_SignRSA_PKCS( 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; } @@ -437,7 +437,7 @@ int do_SignRSA_PKCS( 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_RSA_PKCS_KEY_PAIR_GEN; @@ -499,13 +499,13 @@ int do_SignRSA_PKCS( void ) rc = funcs->C_VerifyInit( session, &mech, publ_key ); if (rc != CKR_OK) { show_error(" C_VerifyInit #2", rc ); - return FALSE; + return rc; } rc = funcs->C_Verify( session, data1, len1, signature, sig_len ); if (rc != CKR_SIGNATURE_INVALID) { show_error(" C_Verify #2", rc ); - printf(" Expected CKR_SIGNATURE_INVALID\n"); + PRINT_ERR(" Expected CKR_SIGNATURE_INVALID\n"); goto error; } @@ -540,36 +540,36 @@ int do_SignRSA_PKCS( void ) } if (len1 != len2) { - printf(" ERROR: recovered length mismatch\n"); + PRINT_ERR(" ERROR: recovered length mismatch\n"); goto error; } if (memcmp(data1, data2, len1) != 0) { - printf(" ERROR; data mismatch\n"); + PRINT_ERR(" ERROR; data mismatch\n"); goto error; } 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 rc; error: - rc = funcs->C_CloseAllSessions ( slot_id ); - if (rc != CKR_OK) - show_error (" C_CloseAllSessions #1", rc); + loc_rc = funcs->C_CloseAllSessions ( slot_id ); + if (loc_rc != CKR_OK) + show_error (" C_CloseAllSessions #1", loc_rc); - return FALSE; + return rc; } // // -int do_WrapUnwrapRSA_PKCS( void ) +CK_RV do_WrapUnwrapRSA_PKCS( void ) { CK_BYTE original [BIG_REQUEST]; CK_BYTE crypt [BIG_REQUEST]; @@ -588,7 +588,7 @@ int do_WrapUnwrapRSA_PKCS( void ) CK_ULONG wrapped_data_len; CK_ULONG i; CK_ULONG orig_len, crypt_len, decrypt_len; - CK_RV rc; + CK_RV rc, loc_rc; CK_OBJECT_CLASS key_class = CKO_SECRET_KEY; CK_KEY_TYPE key_type = CKK_DES; @@ -613,7 +613,7 @@ int do_WrapUnwrapRSA_PKCS( 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; } @@ -723,13 +723,13 @@ int do_WrapUnwrapRSA_PKCS( void ) } if (decrypt_len != orig_len) { - printf(" ERROR: lengths don't match\n"); + PRINT_ERR(" ERROR: lengths don't match\n"); goto error; } for (i=0; i < orig_len; i++) { if (original[i] != decrypt[i]) { - printf(" ERROR: mismatch at byte %ld\n", i ); + PRINT_ERR(" ERROR: mismatch at byte %ld\n", i ); goto error; } } @@ -779,7 +779,7 @@ int do_WrapUnwrapRSA_PKCS( void ) data, &data_len ); if (rc != CKR_KEY_NOT_WRAPPABLE) { show_error(" C_WrapKey #2", rc ); - printf(" Expected CKR_KEY_NOT_WRAPPABLE\n" ); + PRINT_ERR(" Expected CKR_KEY_NOT_WRAPPABLE\n" ); goto error; } } @@ -787,24 +787,24 @@ int do_WrapUnwrapRSA_PKCS( 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 rc; 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_EncryptRSA_X509( void ) +CK_RV do_EncryptRSA_X509( void ) { CK_BYTE data1[100]; CK_BYTE data2[512]; @@ -818,7 +818,7 @@ int do_EncryptRSA_X509( void ) CK_ULONG user_pin_len; CK_ULONG i; CK_ULONG len1, len2, cipherlen, pad_len; - CK_RV rc; + CK_RV rc, loc_rc; CK_BYTE pub_exp[] = { 0x3 }; @@ -835,7 +835,7 @@ int do_EncryptRSA_X509( 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; } @@ -846,7 +846,7 @@ int do_EncryptRSA_X509( 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_RSA_PKCS_KEY_PAIR_GEN; @@ -908,31 +908,31 @@ int do_EncryptRSA_X509( void ) pad_len = len2 - len1; if (memcmp(data1, &data2[pad_len], len1) != 0) { - printf(" ERROR: mismatch at byte %ld\n", i ); + PRINT_ERR(" ERROR: mismatch at byte %ld\n", i ); goto error; } 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 rc; error: - rc = funcs->C_CloseAllSessions ( slot_id ); - if (rc != CKR_OK) - show_error (" C_CloseAllSessions #1", rc); + loc_rc = funcs->C_CloseAllSessions ( slot_id ); + if (loc_rc != CKR_OK) + show_error (" C_CloseAllSessions #1", loc_rc); - return FALSE; + return rc; } // // -int do_SignRSA_X509( void ) +CK_RV do_SignRSA_X509( void ) { CK_BYTE data1[100]; CK_BYTE data2[512]; @@ -946,7 +946,7 @@ int do_SignRSA_X509( void ) CK_ULONG user_pin_len; CK_ULONG i, pad_len; CK_ULONG len1, len2, sig_len; - CK_RV rc; + CK_RV rc, loc_rc; CK_BYTE pub_exp[] = { 0x3 }; @@ -963,7 +963,7 @@ int do_SignRSA_X509( 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; } @@ -974,7 +974,7 @@ int do_SignRSA_X509( 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_RSA_PKCS_KEY_PAIR_GEN; @@ -1042,7 +1042,7 @@ int do_SignRSA_X509( void ) rc = funcs->C_Verify( session, data1, len1, signature, sig_len ); if (rc != CKR_SIGNATURE_INVALID) { show_error(" C_Verify #2", rc ); - printf(" Expected CKR_SIGNATURE_INVALID\n"); + PRINT_ERR(" Expected CKR_SIGNATURE_INVALID\n"); goto error; } @@ -1082,7 +1082,7 @@ int do_SignRSA_X509( void ) pad_len = len2 - len1; if (memcmp(data1, &data2[pad_len], len1) != 0) { - printf(" ERROR; data mismatch\n"); + PRINT_ERR(" ERROR; data mismatch\n"); goto error; } @@ -1090,24 +1090,24 @@ int do_SignRSA_X509( 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 rc; error: - rc = funcs->C_CloseAllSessions (session); - if (rc != CKR_OK) - show_error (" C_CloseAllSessions #1", rc); + loc_rc = funcs->C_CloseAllSessions (session); + if (loc_rc != CKR_OK) + show_error (" C_CloseAllSessions #1", loc_rc); - return FALSE; + return rc; } // // -int do_WrapUnwrapRSA_X509( void ) +CK_RV do_WrapUnwrapRSA_X509( void ) { CK_BYTE original [BIG_REQUEST]; CK_BYTE crypt [BIG_REQUEST]; @@ -1126,7 +1126,7 @@ int do_WrapUnwrapRSA_X509( void ) CK_ULONG wrapped_data_len; CK_ULONG i; CK_ULONG orig_len, crypt_len, decrypt_len; - CK_RV rc; + CK_RV rc, loc_rc; CK_OBJECT_CLASS key_class = CKO_SECRET_KEY; CK_KEY_TYPE key_type = CKK_DES; @@ -1151,7 +1151,7 @@ int do_WrapUnwrapRSA_X509( 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; } @@ -1261,13 +1261,13 @@ int do_WrapUnwrapRSA_X509( void ) } if (decrypt_len != orig_len) { - printf(" ERROR: lengths don't match\n"); + PRINT_ERR(" ERROR: lengths don't match\n"); goto error; } for (i=0; i < orig_len; i++) { if (original[i] != decrypt[i]) { - printf(" ERROR: mismatch at byte %ld\n", i ); + PRINT_ERR(" ERROR: mismatch at byte %ld\n", i ); goto error; } } @@ -1317,7 +1317,7 @@ int do_WrapUnwrapRSA_X509( void ) data, &data_len ); if (rc != CKR_KEY_NOT_WRAPPABLE) { show_error(" C_WrapKey #2", rc ); - printf(" Expected CKR_KEY_NOT_WRAPPABLE\n" ); + PRINT_ERR(" Expected CKR_KEY_NOT_WRAPPABLE\n" ); goto error; } } @@ -1325,23 +1325,23 @@ int do_WrapUnwrapRSA_X509( 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 rc; error: - rc = funcs->C_CloseAllSessions( slot_id ); - if (rc != CKR_OK) - show_error(" C_CloseAllSessions #1", rc ); - return FALSE; + loc_rc = funcs->C_CloseAllSessions( slot_id ); + if (loc_rc != CKR_OK) + show_error(" C_CloseAllSessions #1", loc_rc ); + return rc; } // // -int do_SignVerifyMD2_RSA_PKCS( void ) +CK_RV do_SignVerifyMD2_RSA_PKCS( void ) { CK_BYTE original[2048]; CK_BYTE sig1[512]; @@ -1355,7 +1355,7 @@ int do_SignVerifyMD2_RSA_PKCS( void ) CK_ULONG user_pin_len; CK_ULONG orig_len, sig1_len, sig2_len; CK_ULONG i, remain; - CK_RV rc; + CK_RV rc, loc_rc; CK_BYTE pub_exp[] = { 0x3 }; @@ -1372,7 +1372,7 @@ int do_SignVerifyMD2_RSA_PKCS( 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; } @@ -1383,7 +1383,7 @@ int do_SignVerifyMD2_RSA_PKCS( 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_RSA_PKCS_KEY_PAIR_GEN; @@ -1440,7 +1440,7 @@ int do_SignVerifyMD2_RSA_PKCS( void ) rc = funcs->C_SignUpdate( session, &original[orig_len - remain], amt ); if (rc != CKR_OK) { show_error(" C_SignUpdate #1", rc ); - printf(" Iteration: i = %ld\n", i ); + PRINT_ERR(" Iteration: i = %ld\n", i ); goto error; } @@ -1455,15 +1455,15 @@ int do_SignVerifyMD2_RSA_PKCS( void ) } if (sig1_len != sig2_len) { - printf(" ERROR: signature lengths don't match\n"); + PRINT_ERR(" ERROR: signature lengths don't match\n"); goto error; } if (memcmp(sig1, sig2, sig1_len) != 0) { - printf(" ERROR: signatures don't match\n"); - fprintf (stderr, "\tSig1: %02x %02x %02x %02x ...\n", + PRINT_ERR(" ERROR: signatures don't match\n"); + PRINT_ERR("\tSig1: %02x %02x %02x %02x ...\n", sig1[0], sig1[1], sig1[2], sig1[3]); - fprintf (stderr, "\tSig2: %02x %02x %02x %02x ...\n", + PRINT_ERR("\tSig2: %02x %02x %02x %02x ...\n", sig2[0], sig2[1], sig2[2], sig2[3]); goto error; } @@ -1502,7 +1502,7 @@ int do_SignVerifyMD2_RSA_PKCS( void ) rc = funcs->C_VerifyUpdate( session, &original[orig_len - remain], amt ); if (rc != CKR_OK) { show_error(" C_VerifyUpdate #1", rc ); - printf(" Iteration: i = %ld\n", i ); + PRINT_ERR(" Iteration: i = %ld\n", i ); goto error; } @@ -1529,30 +1529,30 @@ int do_SignVerifyMD2_RSA_PKCS( void ) rc = funcs->C_Verify( session, original, orig_len, sig1, sig1_len ); if (rc != CKR_SIGNATURE_INVALID) { show_error(" C_Verify #2", rc ); - printf(" Expected CKR_SIGNATURE_INVALID\n"); + PRINT_ERR(" Expected CKR_SIGNATURE_INVALID\n"); goto error; } 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 rc; error: - rc = funcs->C_CloseAllSessions( slot_id ); - if (rc != CKR_OK) - show_error(" C_CloseAllSessions #1", rc ); - return FALSE; + loc_rc = funcs->C_CloseAllSessions( slot_id ); + if (loc_rc != CKR_OK) + show_error(" C_CloseAllSessions #1", loc_rc ); + return rc; } // // -int do_SignVerifyMD5_RSA_PKCS( void ) +CK_RV do_SignVerifyMD5_RSA_PKCS( void ) { CK_BYTE original[2048]; CK_BYTE sig1[512]; @@ -1566,7 +1566,7 @@ int do_SignVerifyMD5_RSA_PKCS( void ) CK_ULONG user_pin_len; CK_ULONG orig_len, sig1_len, sig2_len; CK_ULONG i, remain; - CK_RV rc; + CK_RV rc, loc_rc; CK_BYTE pub_exp[] = { 0x3 }; @@ -1583,7 +1583,7 @@ int do_SignVerifyMD5_RSA_PKCS( 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; } @@ -1651,7 +1651,7 @@ int do_SignVerifyMD5_RSA_PKCS( void ) rc = funcs->C_SignUpdate( session, &original[orig_len - remain], amt ); if (rc != CKR_OK) { show_error(" C_SignUpdate #1", rc ); - printf(" Iteration: i = %ld\n", i ); + PRINT_ERR(" Iteration: i = %ld\n", i ); goto error; } @@ -1666,15 +1666,15 @@ int do_SignVerifyMD5_RSA_PKCS( void ) } if (sig1_len != sig2_len) { - printf(" ERROR: signature lengths don't match\n"); + PRINT_ERR(" ERROR: signature lengths don't match\n"); goto error; } if (memcmp(sig1, sig2, sig1_len) != 0) { - printf(" ERROR: signatures don't match\n"); - fprintf (stderr, "\tSig1: %02x %02x %02x %02x ...\n", + PRINT_ERR(" ERROR: signatures don't match\n"); + PRINT_ERR("\tSig1: %02x %02x %02x %02x ...\n", sig1[0], sig1[1], sig1[2], sig1[3]); - fprintf (stderr, "\tSig2: %02x %02x %02x %02x ...\n", + PRINT_ERR("\tSig2: %02x %02x %02x %02x ...\n", sig2[0], sig2[1], sig2[2], sig2[3]); goto error; } @@ -1713,7 +1713,7 @@ int do_SignVerifyMD5_RSA_PKCS( void ) rc = funcs->C_VerifyUpdate( session, &original[orig_len - remain], amt ); if (rc != CKR_OK) { show_error(" C_VerifyUpdate #1", rc ); - printf(" Iteration: i = %ld\n", i ); + PRINT_ERR(" Iteration: i = %ld\n", i ); goto error; } @@ -1740,30 +1740,30 @@ int do_SignVerifyMD5_RSA_PKCS( void ) rc = funcs->C_Verify( session, original, orig_len, sig1, sig1_len ); if (rc != CKR_SIGNATURE_INVALID) { show_error(" C_Verify #2", rc ); - printf(" Expected CKR_SIGNATURE_INVALID\n"); + PRINT_ERR(" Expected CKR_SIGNATURE_INVALID\n"); goto error; } 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 rc; error: - rc = funcs->C_CloseAllSessions( slot_id ); - if (rc != CKR_OK) - show_error(" C_CloseAllSessions #1", rc ); + loc_rc = funcs->C_CloseAllSessions( slot_id ); + if (loc_rc != CKR_OK) + show_error(" C_CloseAllSessions #1", loc_rc ); - return FALSE; + return rc; } // // -int do_SignVerifySHA1_RSA_PKCS( void ) +CK_RV do_SignVerifySHA1_RSA_PKCS( void ) { CK_BYTE original[2048]; CK_BYTE sig1[512]; @@ -1777,7 +1777,7 @@ int do_SignVerifySHA1_RSA_PKCS( void ) CK_ULONG user_pin_len; CK_ULONG orig_len, sig1_len, sig2_len; CK_ULONG i, remain; - CK_RV rc; + CK_RV rc, loc_rc; CK_BYTE pub_exp[] = { 0x3 }; @@ -1794,7 +1794,7 @@ int do_SignVerifySHA1_RSA_PKCS( 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; } @@ -1862,7 +1862,7 @@ int do_SignVerifySHA1_RSA_PKCS( void ) rc = funcs->C_SignUpdate( session, &original[orig_len - remain], amt ); if (rc != CKR_OK) { show_error(" C_SignUpdate #1", rc ); - printf(" Iteration: i = %ld\n", i ); + PRINT_ERR(" Iteration: i = %ld\n", i ); goto error; } @@ -1877,15 +1877,15 @@ int do_SignVerifySHA1_RSA_PKCS( void ) } if (sig1_len != sig2_len) { - printf(" ERROR: signature lengths don't match\n"); + PRINT_ERR(" ERROR: signature lengths don't match\n"); goto error; } if (memcmp(sig1, sig2, sig1_len) != 0) { - printf(" ERROR: signatures don't match\n"); - fprintf (stderr, "\tSig1: %02x %02x %02x %02x ...\n", + PRINT_ERR(" ERROR: signatures don't match\n"); + PRINT_ERR("\tSig1: %02x %02x %02x %02x ...\n", sig1[0], sig1[1], sig1[2], sig1[3]); - fprintf (stderr, "\tSig2: %02x %02x %02x %02x ...\n", + PRINT_ERR("\tSig2: %02x %02x %02x %02x ...\n", sig2[0], sig2[1], sig2[2], sig2[3]); goto error; } @@ -1924,7 +1924,7 @@ int do_SignVerifySHA1_RSA_PKCS( void ) rc = funcs->C_VerifyUpdate( session, &original[orig_len - remain], amt ); if (rc != CKR_OK) { show_error(" C_VerifyUpdate #1", rc ); - printf(" Iteration: i = %ld\n", i ); + PRINT_ERR(" Iteration: i = %ld\n", i ); goto error; } @@ -1951,70 +1951,28 @@ int do_SignVerifySHA1_RSA_PKCS( void ) rc = funcs->C_Verify( session, original, orig_len, sig1, sig1_len ); if (rc != CKR_SIGNATURE_INVALID) { show_error(" C_Verify #2", rc ); - printf(" Expected CKR_SIGNATURE_INVALID\n"); + PRINT_ERR(" Expected CKR_SIGNATURE_INVALID\n"); goto error; } 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 rc; error: - rc = funcs->C_CloseAllSessions( slot_id ); - if (rc != CKR_OK) - show_error(" C_CloseAllSessions #1", rc ); - - return FALSE; -} - -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; - - } + loc_rc = funcs->C_CloseAllSessions( slot_id ); + if (loc_rc != CKR_OK) + show_error(" C_CloseAllSessions #1", loc_rc ); - rsa_functions(); + return rc; } - -int rsa_functions() +CK_RV rsa_functions() { SYSTEMTIME t1, t2; int rc; @@ -2023,70 +1981,70 @@ int rsa_functions() //In test phase //for (bits = 1024; bits <= 2048; bits*=2) { - printf("RSA tests with %d bits keys...\n\n", bits); + printf("RSA tests with %lu bits keys...\n\n", bits); #if 1 GetSystemTime(&t1); rc = do_GenerateRSAKeyPair(); - if (!rc) - fprintf (stderr, "ERROR do_GenerateRSAKeyPair failed, rc = 0x%0x\n", rc); + if (rc) + PRINT_ERR("ERROR do_GenerateRSAKeyPair failed, rc = 0x%0x\n", rc); GetSystemTime(&t2); process_time( t1, t2 ); GetSystemTime(&t1); rc = do_EncryptRSA_PKCS(); - if (!rc) - fprintf (stderr, "ERROR do_EncryptRSA_PKCS failed, rc = 0x%0x\n", rc); + if (rc) + PRINT_ERR("ERROR do_EncryptRSA_PKCS failed, rc = 0x%0x\n", rc); GetSystemTime(&t2); process_time( t1, t2 ); GetSystemTime(&t1); // rc = do_EncryptRSA_PKCS_Speed(); - if (!rc) - fprintf (stderr, "ERROR do_EncryptRSA_PKCS_Speed failed, rc = 0x%0x\n", rc); + if (rc) + PRINT_ERR("ERROR do_EncryptRSA_PKCS_Speed failed, rc = 0x%0x\n", rc); GetSystemTime(&t2); process_time( t1, t2 ); GetSystemTime(&t1); rc = do_SignRSA_PKCS(); - if (!rc) - fprintf (stderr, "ERROR do_SignRSA_PKCS failed, rc = 0x%0x\n", rc); + if (rc) + PRINT_ERR("ERROR do_SignRSA_PKCS failed, rc = 0x%0x\n", rc); GetSystemTime(&t2); process_time( t1, t2 ); GetSystemTime(&t1); rc = do_WrapUnwrapRSA_PKCS(); - if (!rc) - fprintf (stderr, "ERROR do_WrapUnwrapRSA_PKCS failed, rc = 0x%0x\n", rc); + if (rc) + PRINT_ERR("ERROR do_WrapUnwrapRSA_PKCS failed, rc = 0x%0x\n", rc); GetSystemTime(&t2); process_time( t1, t2 ); GetSystemTime(&t1); rc = do_EncryptRSA_X509(); - if (!rc) - fprintf (stderr, "ERROR do_EncryptRSA_X509 failed, rc = 0x%0x\n", rc); + if (rc) + PRINT_ERR("ERROR do_EncryptRSA_X509 failed, rc = 0x%0x\n", rc); GetSystemTime(&t2); process_time( t1, t2 ); GetSystemTime(&t1); rc = do_SignRSA_X509(); - if (!rc) - fprintf (stderr, "ERROR do_SignRSA_X509 failed, rc = 0x%0x\n", rc); + if (rc) + PRINT_ERR("ERROR do_SignRSA_X509 failed, rc = 0x%0x\n", rc); GetSystemTime(&t2); process_time( t1, t2 ); GetSystemTime(&t1); rc = do_WrapUnwrapRSA_X509(); - if (!rc) - fprintf (stderr, "ERROR do_WrapUnwrapRSA_X509 failed, rc = 0x%0x\n", rc); + if (rc) + PRINT_ERR("ERROR do_WrapUnwrapRSA_X509 failed, rc = 0x%0x\n", rc); GetSystemTime(&t2); process_time( t1, t2 ); #if MD2 GetSystemTime(&t1); rc = do_SignVerifyMD2_RSA_PKCS(); - if (!rc) - fprintf (stderr, "ERROR do_SignVerifyMD2_RSA_PKCS failed, rc = 0x%0x\n", rc); + if (rc) + PRINT_ERR("ERROR do_SignVerifyMD2_RSA_PKCS failed, rc = 0x%0x\n", rc); GetSystemTime(&t2); process_time( t1, t2 ); #endif @@ -2094,47 +2052,93 @@ int rsa_functions() GetSystemTime(&t1); rc = do_SignVerifyMD5_RSA_PKCS(); - if (!rc) - fprintf (stderr, "ERROR do_SignVerifyMD5_RSA_PKCS failed, rc = 0x%0x\n", rc); + if (rc) + PRINT_ERR("ERROR do_SignVerifyMD5_RSA_PKCS failed, rc = 0x%0x\n", rc); GetSystemTime(&t2); process_time( t1, t2 ); GetSystemTime(&t1); rc = do_SignVerifySHA1_RSA_PKCS(); - if (!rc) - fprintf (stderr, "ERROR do_SignVerifySHA1_RSA_PKCS failed, rc = 0x%0x\n", rc); + if (rc) + PRINT_ERR("ERROR do_SignVerifySHA1_RSA_PKCS failed, rc = 0x%0x\n", rc); GetSystemTime(&t2); process_time( t1, t2 ); // GetSystemTime(&t1); // rc = do_EncryptRSA_PKCS_Speed(); - // if (!rc) - // return FALSE; + // if (rc) + // return rc; // GetSystemTime(&t2); // process_time( t1, t2 ); GetSystemTime(&t1); rc = do_SignVerifyMD5_RSA_PKCS(); - if (!rc) - fprintf (stderr, "ERROR do_SignVerifyMD5_RSA_PKCS failed, rc = 0x%0x\n", rc); + if (rc) + PRINT_ERR("ERROR do_SignVerifyMD5_RSA_PKCS failed, rc = 0x%0x\n", rc); GetSystemTime(&t2); process_time( t1, t2 ); GetSystemTime(&t1); rc = do_SignVerifySHA1_RSA_PKCS(); - if (!rc) - fprintf (stderr, "ERROR do_SignVerifySHA1_RSA_PKCS failed, rc = 0x%0x\n", rc); + if (rc) + PRINT_ERR("ERROR do_SignVerifySHA1_RSA_PKCS failed, rc = 0x%0x\n", rc); GetSystemTime(&t2); process_time( t1, t2 ); GetSystemTime(&t1); //rc = do_EncryptRSA_PKCS_Speed(); - if (!rc) - fprintf (stderr, "ERROR do_EncryptRSA_PKCS_Speed failed, rc = 0x%0x\n", rc); + if (rc) + PRINT_ERR("ERROR do_EncryptRSA_PKCS_Speed failed, rc = 0x%0x\n", rc); GetSystemTime(&t2); process_time( t1, t2 ); } - return TRUE; + return rc; } +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 = rsa_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
