From 0a907f66eb453ba4ff3951c815cde36bdc777328 Mon Sep 17 00:00:00 2001 From: kubodera_yuichi Date: Wed, 23 Dec 2009 08:06:51 +0000 Subject: [PATCH] =?UTF-8?q?=E5=AE=89=E5=85=A8=E3=81=AANFKM=5Ffreekey?= =?UTF-8?q?=E5=87=A6=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_eFuse@67 ff987cc8-cf2f-4642-8568-d52cce064691 --- cr_hsm_code.c | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/cr_hsm_code.c b/cr_hsm_code.c index 4bdab20..26a5d2c 100644 --- a/cr_hsm_code.c +++ b/cr_hsm_code.c @@ -303,7 +303,7 @@ int hsm_aes_load_key( NFKM_KeyIdent keyident, M_KeyID *keyid ) ret_code = NFKM_findkey( hsmHandle, keyident, &keyinfo, NULL ); if ( ret_code != CR_GENID_SUCCESS ) { - return ret_code; + goto end; } // get usable Module @@ -311,7 +311,7 @@ int hsm_aes_load_key( NFKM_KeyIdent keyident, M_KeyID *keyid ) ret_code = NFKM_getusablemodule( hsmWorld, HSM_MODULE_ID, &hsmModuleinfo ); if ( ret_code != CR_GENID_SUCCESS ) { - return ret_code; + goto end; } // load key blob @@ -321,12 +321,14 @@ int hsm_aes_load_key( NFKM_KeyIdent keyident, M_KeyID *keyid ) 0, keyid, "loading aes key blob", NULL ); if ( ret_code != CR_GENID_SUCCESS ) { - return ret_code; + goto end; } - - NFKM_freekey( hsmHandle, keyinfo, NULL ); - - return CR_GENID_SUCCESS; + +end: + if ( keyinfo != NULL ) + NFKM_freekey( hsmHandle, keyinfo, NULL ); + + return ret_code; } // hsm_aes_load_key int hsm_aes_encrypt( unsigned char *dst_buf, unsigned char *org_buf, int size, u8 bondingOption ) @@ -442,7 +444,7 @@ int hsm_rsa_load_keypair( NFKM_KeyIdent keyident, M_KeyID *privKeyid, M_KeyID *p ret_code = NFKM_findkey( hsmHandle, keyident, &keyinfo, NULL ); if ( ret_code != CR_GENID_SUCCESS ) { - return ret_code; + goto end; } // get usable Module @@ -450,7 +452,7 @@ int hsm_rsa_load_keypair( NFKM_KeyIdent keyident, M_KeyID *privKeyid, M_KeyID *p ret_code = NFKM_getusablemodule( hsmWorld, HSM_MODULE_ID, &hsmModuleinfo ); if ( ret_code != CR_GENID_SUCCESS ) { - return ret_code; + goto end; } // load private key blob @@ -461,12 +463,9 @@ int hsm_rsa_load_keypair( NFKM_KeyIdent keyident, M_KeyID *privKeyid, M_KeyID *p "loading priv key blob", NULL ); if ( ret_code != CR_GENID_SUCCESS ) { - NFKM_freekey( hsmHandle, keyinfo, NULL ); - return ret_code; + goto end; } - NFKM_freekey( hsmHandle, keyinfo, NULL ); - // load public key blob blobPtr = &keyinfo->pubblob; ret_code = NFKM_cmd_loadblob( hsmHandle, hsmConnection, @@ -475,13 +474,13 @@ int hsm_rsa_load_keypair( NFKM_KeyIdent keyident, M_KeyID *privKeyid, M_KeyID *p "loading pub key blob", NULL ); if ( ret_code != CR_GENID_SUCCESS ) { - NFKM_freekey( hsmHandle, keyinfo, NULL ); - return ret_code; + goto end; } - + +end: NFKM_freekey( hsmHandle, keyinfo, NULL ); - - return CR_GENID_SUCCESS; + + return ret_code; } // hsm_rsa_load_keypair int hsm_rsa_encrypt( unsigned char *dst_buf, unsigned char *org_buf, int size, u8 bondingOption )