From a656144f01da53cf3a29e6d444a422ef6ca3d8a2 Mon Sep 17 00:00:00 2001 From: kubodera_yuichi Date: Tue, 22 Dec 2009 05:43:31 +0000 Subject: [PATCH] =?UTF-8?q?RSA=E5=87=A6=E7=90=86=E9=83=A8=E3=81=8C?= =?UTF-8?q?=E6=8A=9C=E3=81=91=E3=81=A6=E3=81=84=E3=81=9F=E3=81=AE=E3=81=A7?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0(cr=5Frsa=5Fenc=5Fdec=E9=96=A2=E6=95=B0?= =?UTF-8?q?=E3=81=AE=E4=B8=AD=E8=BA=AB)?= 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@20 ff987cc8-cf2f-4642-8568-d52cce064691 --- cr_enc_id.c | 32 ++++++++++++++++++++++++++++++++ cr_generate_id.c | 3 +-- cr_generate_id.h | 3 +++ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/cr_enc_id.c b/cr_enc_id.c index d0c26a0..e81ef52 100644 --- a/cr_enc_id.c +++ b/cr_enc_id.c @@ -153,6 +153,9 @@ int EncryptID( unsigned char *dst_buf, unsigned char *org_buf ) int crypto_aes_enc_dec( unsigned char *dst_buf, unsigned char *org_buf ) { + int i; + int ret_code = 0; + // encrypt ret_code = hsm_aes_encrypt( local_buf_1, org_buf, CR_ID_BUF_SIZE ); if ( ret_code != CR_GENID_SUCCESS ) @@ -256,7 +259,36 @@ int crypto_aes_enc_dec( unsigned char *dst_buf, unsigned char *org_buf ) int crypto_rsa_enc_dec( unsigned char *dst_buf,unsigned char *org_buf ) { + int i; + int ret_code = 0; + // encrypt + ret_code = hsm_rsa_encrypt( local_buf_1, org_buf, CR_ID_BUF_SIZE ); + if ( ret_code != CR_GENID_SUCCESS ) + { + printf( "error(%d) : hsm_rsa_encyrpt\n", ret_code ); + return ret_code; + } + + // decyrpt + ret_code = hsm_rsa_decrypt( local_buf_2, local_buf_1, CR_ID_BUF_SIZE ); + if ( ret_code != CR_GENID_SUCCESS ) + { + printf( "error(%d) : hsm_rsa_decrypt\n", ret_code ); + return ret_code; + } + + // ベリファイ + for ( i = 0 ; i < CR_ID_BUF_SIZE ; i++ ) + { + if( org_buf[i] != local_buf_2[i] ) + { + return CR_GENID_ERROR_AES_VERIFY; + } + } + + // バッファコピー + memcpy( dst_buf, local_buf_1, CR_ID_BUF_SIZE ); return CR_GENID_SUCCESS; } // hsm_crypto_rsa_enc_dec diff --git a/cr_generate_id.c b/cr_generate_id.c index 2e5d82d..ff9d186 100644 --- a/cr_generate_id.c +++ b/cr_generate_id.c @@ -154,7 +154,7 @@ int cr_print_flag = 0; int cr_generate_id_initialize( void ) { - int ret_code = 0; + int ret_code = 0; #ifdef USE_HSM ret_code = hsm_initialize(); @@ -170,7 +170,6 @@ int cr_generate_id_initialize( void ) return ( ret_code ); } // cr_generate_id_initialize - // generate_id関数のファイナライズ int cr_generate_id_finalize( void ) { diff --git a/cr_generate_id.h b/cr_generate_id.h index f58a815..4cbd55c 100644 --- a/cr_generate_id.h +++ b/cr_generate_id.h @@ -140,6 +140,9 @@ #define CR_GENID_ERROR_ID_BUF_SIZE (-19) #define CR_GENID_ERROR_ERR_BUF_SIZE (-20) #define CR_GENID_ERROR_PRIVKEY_SCRAMBLE (-21) +#define CR_GENID_ERROR_AES_ENC (-22) +#define CR_GENID_ERROR_AES_DEC (-23) +#define CR_GENID_ERROR_AES_VERIFY (-24) //--------------------------------------------------- // HSM̏ʂɂG[R[h