diff --git a/cr_generate_id.c b/cr_generate_id.c index c587e1d..eba9d91 100644 --- a/cr_generate_id.c +++ b/cr_generate_id.c @@ -167,21 +167,20 @@ int cr_generate_id_initialize( u8 id_buf[CR_ID_BUF_SIZE] ) // generate_id関数のファイナライズ int cr_generate_id_finalize( void ) { - int ok = CR_GENID_SUCCESS; - - // openssl TOOD: ここでファイナライズ不要なら、削除 - ERR_remove_state(0); - EVP_cleanup(); - CRYPTO_cleanup_all_ex_data(); + int ret_code = CR_GENID_FINALIZE_OK; // HSM #ifdef USE_HSM - hsm_finalize(); + ret_code = hsm_finalize(); + if ( ret_code != CR_GENID_SUCCESS ) + { + return 0; + } #endif // USE_HSM - ok = CR_GENID_FINALIZE_OK; + ret_code = CR_GENID_FINALIZE_OK; - return ( ok ); + return ret_code; } // cr_generate_id_finalize // generate_id 関数 diff --git a/cr_hsm_code.c b/cr_hsm_code.c index 3657ccb..0c31f88 100644 --- a/cr_hsm_code.c +++ b/cr_hsm_code.c @@ -241,12 +241,23 @@ int hsm_initialize( void ) return ret_code; } // hsm_initialize -void hsm_finalize( void ) +int hsm_finalize( void ) { - // TODO: G[nhOB + int ret_code = CR_GENID_SUCCESS; + + // void NFKM_freeinfo( hsmHandle, &hsmWorld, NULL ); - NFastApp_Disconnect( hsmConnection, NULL ); + + ret_code = NFastApp_Disconnect( hsmConnection, NULL ); + if ( ret_code != CR_GENID_SUCCESS ) + { + SetErrorInfo( __FUNCTION__, __LINE__ ); + } + + // void NFastApp_Finish( hsmHandle, NULL ); + + return ret_code; } // hsm_finalize int hsm_reset_module( void ) diff --git a/cr_hsm_code.h b/cr_hsm_code.h index b62baf3..8633a51 100644 --- a/cr_hsm_code.h +++ b/cr_hsm_code.h @@ -120,7 +120,7 @@ extern "C" { // functions int hsm_initialize( void ); -void hsm_finalize( void ); +int hsm_finalize( void ); int hsm_reset_module( void ); int hsm_generate_random( unsigned char *buf, int bytes ); int hsm_get_rtc( time_t *time ); diff --git a/main.c b/main.c index 9cfe02f..0776a2c 100644 --- a/main.c +++ b/main.c @@ -396,7 +396,8 @@ int main(int ac, char *argv[]) end: // cr_generate_id を使用した後に呼び出す - if ( !cr_generate_id_finalize() ) + ret_code = cr_generate_id_finalize(); + if ( ret_code != CR_GENID_FINALIZE_OK ) { printf( "error : cr_generate_id_finalize()\n" ); return 0; // error