- 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/ssl3_func.c | 182 +++++++++++++++++++++--------------------- 1 files changed, 92 insertions(+), 90 deletions(-) diff --git a/testcases/driver/ssl3_func.c b/testcases/driver/ssl3_func.c index 78290cb..161af2e 100755 --- a/testcases/driver/ssl3_func.c +++ b/testcases/driver/ssl3_func.c @@ -16,7 +16,7 @@ static CK_BBOOL false = FALSE; // // -int do_SignVerify_SSL3_MD5_MAC( void ) +CK_RV do_SignVerify_SSL3_MD5_MAC( void ) { CK_SESSION_HANDLE session; CK_SLOT_ID slot_id; @@ -35,7 +35,7 @@ int do_SignVerify_SSL3_MD5_MAC( 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; } mac_size = 8; @@ -71,43 +71,43 @@ int do_SignVerify_SSL3_MD5_MAC( void ) rc = funcs->C_CreateObject( session, key_attribs, 4, &h_key ); if (rc != CKR_OK) { show_error(" C_CreateObject #1", rc ); - return FALSE; + return rc; } rc = funcs->C_SignInit( session, &mech, h_key ); if (rc != CKR_OK) { show_error(" C_SignInit #1", rc ); - return FALSE; + return rc; } hash_len = sizeof(hash); rc = funcs->C_Sign( session, data, data_len, hash, &hash_len ); if (rc != CKR_OK) { show_error(" C_Sign #1", rc ); - return FALSE; + return rc; } if (hash_len != mac_size) { - printf(" Error: C_Sign #1 generated bad MAC length\n"); - return FALSE; + PRINT_ERR(" Error: C_Sign #1 generated bad MAC length\n"); + return -1; } rc = funcs->C_VerifyInit( session, &mech, h_key ); if (rc != CKR_OK) { show_error(" C_VerifyInit #1", rc ); - return FALSE; + return rc; } rc = funcs->C_Verify( session, data, data_len, hash, hash_len ); if (rc != CKR_OK) { show_error(" C_Verify #1", rc ); - return FALSE; + return rc; } rc = funcs->C_DestroyObject( session, h_key ); if (rc != CKR_OK) { show_error(" C_DestroyObject #1", rc ); - return FALSE; + return rc; } } @@ -138,21 +138,21 @@ int do_SignVerify_SSL3_MD5_MAC( void ) rc = funcs->C_CreateObject( session, key_attribs, 4, &h_key ); if (rc != CKR_OK) { show_error(" C_CreateObject #2", rc ); - return FALSE; + return rc; } rc = funcs->C_SignInit( session, &mech, h_key ); if (rc != CKR_OK) { show_error(" C_SignInit #2", rc ); - return FALSE; + return rc; } for (i=0; i < 500; i+=100) { rc = funcs->C_SignUpdate( session, &data[i], 100 ); if (rc != CKR_OK) { show_error(" C_SignUpdate #1", rc ); - printf(" Iteration #%ld\n", i / 100 ); - return FALSE; + PRINT_ERR(" Iteration #%ld\n", i / 100 ); + return rc; } } @@ -160,70 +160,70 @@ int do_SignVerify_SSL3_MD5_MAC( void ) rc = funcs->C_SignFinal( session, hash, &hash_len ); if (rc != CKR_OK) { show_error(" C_SignFinal #1", rc ); - return FALSE; + return rc; } if (hash_len != mac_size) { - printf(" Error: C_SignUpdate/Final #1 generated bad MAC length\n"); - return FALSE; + PRINT_ERR(" Error: C_SignUpdate/Final #1 generated bad MAC length\n"); + return -1; } rc = funcs->C_VerifyInit( session, &mech, h_key ); if (rc != CKR_OK) { show_error(" C_VerifyInit #2", rc ); - return FALSE; + return rc; } rc = funcs->C_Verify( session, data, data_len, hash, hash_len ); if (rc != CKR_OK) { show_error(" C_Verify #2", rc ); - return FALSE; + return rc; } rc = funcs->C_VerifyInit( session, &mech, h_key ); if (rc != CKR_OK) { show_error(" C_VerifyInit #3", rc ); - return FALSE; + return rc; } for (i=0; i < 500; i+=100) { rc = funcs->C_VerifyUpdate( session, &data[i], 100 ); if (rc != CKR_OK) { show_error(" C_VerifyUpdate #1", rc ); - printf(" Iteration #%ld\n", i / 100 ); - return FALSE; + PRINT_ERR(" Iteration #%ld\n", i / 100 ); + return rc; } } rc = funcs->C_VerifyFinal( session, hash, hash_len ); if (rc != CKR_OK) { show_error(" C_VerifyFinal #1", rc ); - return FALSE; + return rc; } rc = funcs->C_DestroyObject( session, h_key ); if (rc != CKR_OK) { show_error(" C_DestroyObject #1", rc ); - 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 rc; } // // -int do_SignVerify_SSL3_SHA1_MAC( void ) +CK_RV do_SignVerify_SSL3_SHA1_MAC( void ) { CK_SESSION_HANDLE session; CK_SLOT_ID slot_id; @@ -242,7 +242,7 @@ int do_SignVerify_SSL3_SHA1_MAC( 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; } mac_size = 8; @@ -278,60 +278,60 @@ int do_SignVerify_SSL3_SHA1_MAC( void ) rc = funcs->C_CreateObject( session, key_attribs, 4, &h_key ); if (rc != CKR_OK) { show_error(" C_CreateObject #1", rc ); - return FALSE; + return rc; } rc = funcs->C_SignInit( session, &mech, h_key ); if (rc != CKR_OK) { show_error(" C_SignInit #1", rc ); - return FALSE; + return rc; } hash_len = sizeof(hash); rc = funcs->C_Sign( session, data, data_len, hash, &hash_len ); if (rc != CKR_OK) { show_error(" C_Sign #1", rc ); - return FALSE; + return rc; } if (hash_len != mac_size) { - printf(" Error: C_Sign #1 generated bad MAC length\n"); - return FALSE; + PRINT_ERR(" Error: C_Sign #1 generated bad MAC length\n"); + return -1; } rc = funcs->C_VerifyInit( session, &mech, h_key ); if (rc != CKR_OK) { show_error(" C_VerifyInit #1", rc ); - return FALSE; + return rc; } rc = funcs->C_Verify( session, data, data_len, hash, hash_len ); if (rc != CKR_OK) { show_error(" C_Verify #1", rc ); - return FALSE; + return rc; } rc = funcs->C_DestroyObject( session, h_key ); if (rc != CKR_OK) { show_error(" C_DestroyObject #1", rc ); - 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 rc; } // // -int do_SSL3_PreMasterKeyGen( void ) +CK_RV do_SSL3_PreMasterKeyGen( void ) { CK_SESSION_HANDLE session; CK_SLOT_ID slot_id; @@ -349,7 +349,7 @@ int do_SSL3_PreMasterKeyGen( 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; } version.major = 3; @@ -363,23 +363,23 @@ int do_SSL3_PreMasterKeyGen( 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_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; } // // -int do_SSL3_MasterKeyDerive( void ) +CK_RV do_SSL3_MasterKeyDerive( void ) { CK_SESSION_HANDLE session; CK_SLOT_ID slot_id; @@ -397,7 +397,7 @@ int do_SSL3_MasterKeyDerive( 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; } // generate the pre-master secret key @@ -417,7 +417,7 @@ int do_SSL3_MasterKeyDerive( void ) rc = funcs->C_GenerateKey( session, &mech, pm_tmpl, 2, &h_pm_secret ); if (rc != CKR_OK) { show_error(" C_GenerateKey #1", rc ); - return FALSE; + return rc; } } @@ -450,25 +450,62 @@ int do_SSL3_MasterKeyDerive( void ) rc = funcs->C_DeriveKey( session, &mech, h_pm_secret, NULL, 0, &h_mk ); if (rc != CKR_OK) { show_error(" C_Derive #1", rc ); - 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 rc; +} + +CK_RV ssl3_functions() +{ + SYSTEMTIME t1, t2; + CK_RV rc; + + + GetSystemTime(&t1); + rc = do_SignVerify_SSL3_MD5_MAC(); + if (rc && !no_stop) + return rc; + GetSystemTime(&t2); + process_time( t1, t2 ); + + GetSystemTime(&t1); + rc = do_SignVerify_SSL3_SHA1_MAC(); + if (rc && !no_stop) + return rc; + GetSystemTime(&t2); + process_time( t1, t2 ); + + GetSystemTime(&t1); + rc = do_SSL3_PreMasterKeyGen(); + if (rc && !no_stop) + return rc; + GetSystemTime(&t2); + process_time( t1, t2 ); + + GetSystemTime(&t1); + rc = do_SSL3_MasterKeyDerive(); + if (rc && !no_stop) + return rc; + GetSystemTime(&t2); + process_time( t1, t2 ); + + return rc; } int main(int argc, char **argv) { CK_C_INITIALIZE_ARGS cinit_args; - int rc, i; - + int rc; + CK_RV rv; rc = do_ParseArgs(argc, argv); if ( rc != 1) @@ -479,7 +516,7 @@ int main(int argc, char **argv) rc = do_GetFunctionList(); if (!rc) { - fprintf(stderr, "ERROR do_GetFunctionList() Failed , rc = 0x%0x\n", rc); + PRINT_ERR("ERROR do_GetFunctionList() Failed , rc = 0x%0x\n", rc); return rc; } @@ -503,42 +540,7 @@ int main(int argc, char **argv) } - ssl3_functions(); -} - -int ssl3_functions() -{ - SYSTEMTIME t1, t2; - int rc; - - - GetSystemTime(&t1); - rc = do_SignVerify_SSL3_MD5_MAC(); - if (!rc && !no_stop) - return FALSE; - GetSystemTime(&t2); - process_time( t1, t2 ); - - GetSystemTime(&t1); - rc = do_SignVerify_SSL3_SHA1_MAC(); - if (!rc && !no_stop) - return FALSE; - GetSystemTime(&t2); - process_time( t1, t2 ); - - GetSystemTime(&t1); - rc = do_SSL3_PreMasterKeyGen(); - if (!rc && !no_stop) - return FALSE; - GetSystemTime(&t2); - process_time( t1, t2 ); - - GetSystemTime(&t1); - rc = do_SSL3_MasterKeyDerive(); - if (!rc && !no_stop) - return FALSE; - GetSystemTime(&t2); - process_time( t1, t2 ); - - return TRUE; + rv = ssl3_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
