mirror of
https://github.com/rvtr/ctr_eFuse.git
synced 2025-11-02 00:11:04 -04:00
ifdef抜けの修正
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_eFuse@25 ff987cc8-cf2f-4642-8568-d52cce064691
This commit is contained in:
parent
8c5597c7eb
commit
33621db72c
200
cr_hsm_code.c
200
cr_hsm_code.c
@ -316,6 +316,8 @@ int hsm_get_rtc( time_t *time )
|
||||
return CR_GENID_SUCCESS;
|
||||
} // hsm_get_rtc
|
||||
|
||||
#ifdef ENCYRPT_AES
|
||||
|
||||
int hsm_aes_load_key( void )
|
||||
{
|
||||
int ret_code = 0;
|
||||
@ -383,6 +385,105 @@ int hsm_aes_load_key( void )
|
||||
return CR_GENID_SUCCESS;
|
||||
} // hsm_aes_load_key
|
||||
|
||||
int hsm_aes_encrypt( unsigned char *dst_buf, unsigned char *org_buf, int size )
|
||||
{
|
||||
int ret_code = 0;
|
||||
|
||||
M_Command cmd;
|
||||
M_Reply reply;
|
||||
M_IV enc_iv;
|
||||
|
||||
memset( &cmd, 0, sizeof( cmd ) );
|
||||
memset( &reply, 0, sizeof( reply ) );
|
||||
|
||||
// iv set
|
||||
enc_iv.mech = Mech_RijndaelmCBCpNONE;
|
||||
memset( enc_iv.iv.generic128.iv.bytes, 0, sizeof( enc_iv.iv.generic128.iv.bytes ) );
|
||||
|
||||
// encrypt command set
|
||||
cmd.cmd = Cmd_Encrypt;
|
||||
cmd.args.encrypt.key = hsmAeskeyid;
|
||||
cmd.args.encrypt.mech = Mech_RijndaelmCBCpNONE;
|
||||
cmd.args.encrypt.plain.type = PlainTextType_Bytes;
|
||||
cmd.args.encrypt.plain.data.bytes.data.len = size;
|
||||
cmd.args.encrypt.plain.data.bytes.data.ptr = org_buf;
|
||||
cmd.args.encrypt.flags = Cmd_Encrypt_Args_flags_given_iv_present;
|
||||
cmd.args.encrypt.given_iv = &enc_iv;
|
||||
|
||||
// encrypt command issue
|
||||
ret_code = NFastApp_Transact( hsmConnection, NULL, &cmd, &reply, NULL );
|
||||
if ( ret_code != CR_GENID_SUCCESS )
|
||||
{
|
||||
printf( "error(%d) : Encryption by HSM\n", ret_code );
|
||||
return ret_code;
|
||||
}
|
||||
ret_code = reply.status;
|
||||
if ( ret_code != CR_GENID_SUCCESS )
|
||||
{
|
||||
printf( "error(%d) : Encrypt Reply Status by HSM\n", ret_code );
|
||||
return ret_code;
|
||||
}
|
||||
|
||||
// buffer copy
|
||||
memcpy( dst_buf, reply.reply.encrypt.cipher.data.generic128.cipher.ptr, size );
|
||||
|
||||
//NFastApp_Free_Command( hsmHandle, NULL, NULL, &cmd ); // 何故かアボートする
|
||||
NFastApp_Free_Reply( hsmHandle, NULL, NULL, &reply );
|
||||
|
||||
return CR_GENID_SUCCESS;
|
||||
} // hsm_aes_encrypt
|
||||
|
||||
int hsm_aes_decrypt( unsigned char *dst_buf, unsigned char *org_buf, int size )
|
||||
{
|
||||
int ret_code = 0;
|
||||
|
||||
M_Command cmd;
|
||||
M_Reply reply;
|
||||
M_IV dec_iv;
|
||||
|
||||
memset( &cmd, 0, sizeof( cmd ) );
|
||||
memset( &reply, 0, sizeof( reply ) );
|
||||
|
||||
// iv set
|
||||
dec_iv.mech = Mech_RijndaelmCBCpNONE;
|
||||
memset( dec_iv.iv.generic128.iv.bytes, 0, sizeof( dec_iv.iv.generic128.iv.bytes ) );
|
||||
|
||||
// decyrpt
|
||||
cmd.cmd = Cmd_Decrypt;
|
||||
cmd.args.decrypt.flags = 0;
|
||||
cmd.args.decrypt.key = hsmAeskeyid;
|
||||
cmd.args.decrypt.mech = Mech_RijndaelmCBCpNONE;
|
||||
cmd.args.decrypt.cipher.mech = Mech_RijndaelmCBCpNONE;
|
||||
cmd.args.decrypt.cipher.data.generic128.cipher.len = size;
|
||||
cmd.args.decrypt.cipher.data.generic128.cipher.ptr = org_buf;
|
||||
cmd.args.decrypt.cipher.iv = dec_iv.iv;
|
||||
cmd.args.decrypt.reply_type = PlainTextType_Bytes;
|
||||
|
||||
// decrypt command issue
|
||||
ret_code = NFastApp_Transact( hsmConnection, NULL, &cmd, &reply, NULL );
|
||||
if ( ret_code != CR_GENID_SUCCESS )
|
||||
{
|
||||
printf( "error(%d) : Decryption by HSM\n", ret_code );
|
||||
return ret_code;
|
||||
}
|
||||
ret_code = reply.status;
|
||||
if ( ret_code != CR_GENID_SUCCESS )
|
||||
{
|
||||
printf( "error(%d) : Decrypt Reply Status by HSM\n", ret_code );
|
||||
return ret_code;
|
||||
}
|
||||
|
||||
// buffer copy
|
||||
memcpy( dst_buf, reply.reply.decrypt.plain.data.bytes.data.ptr, size );
|
||||
|
||||
//NFastApp_Free_Command( hsmHandle, NULL, NULL, &cmd ); // 何故かアボートする
|
||||
NFastApp_Free_Reply( hsmHandle, NULL, NULL, &reply );
|
||||
|
||||
return CR_GENID_SUCCESS;
|
||||
} // hsm_aes_decrypt
|
||||
|
||||
#else // !ENCRYPT_AES
|
||||
|
||||
int hsm_rsa_load_keypair( void )
|
||||
{
|
||||
int ret_code = 0;
|
||||
@ -553,103 +654,6 @@ int hsm_rsa_load_keypair( void )
|
||||
return CR_GENID_SUCCESS;
|
||||
} // hsm_rsa_load_keypair
|
||||
|
||||
int hsm_aes_encrypt( unsigned char *dst_buf, unsigned char *org_buf, int size )
|
||||
{
|
||||
int ret_code = 0;
|
||||
|
||||
M_Command cmd;
|
||||
M_Reply reply;
|
||||
M_IV enc_iv;
|
||||
|
||||
memset( &cmd, 0, sizeof( cmd ) );
|
||||
memset( &reply, 0, sizeof( reply ) );
|
||||
|
||||
// iv set
|
||||
enc_iv.mech = Mech_RijndaelmCBCpNONE;
|
||||
memset( enc_iv.iv.generic128.iv.bytes, 0, sizeof( enc_iv.iv.generic128.iv.bytes ) );
|
||||
|
||||
// encrypt command set
|
||||
cmd.cmd = Cmd_Encrypt;
|
||||
cmd.args.encrypt.key = hsmAeskeyid;
|
||||
cmd.args.encrypt.mech = Mech_RijndaelmCBCpNONE;
|
||||
cmd.args.encrypt.plain.type = PlainTextType_Bytes;
|
||||
cmd.args.encrypt.plain.data.bytes.data.len = size;
|
||||
cmd.args.encrypt.plain.data.bytes.data.ptr = org_buf;
|
||||
cmd.args.encrypt.flags = Cmd_Encrypt_Args_flags_given_iv_present;
|
||||
cmd.args.encrypt.given_iv = &enc_iv;
|
||||
|
||||
// encrypt command issue
|
||||
ret_code = NFastApp_Transact( hsmConnection, NULL, &cmd, &reply, NULL );
|
||||
if ( ret_code != CR_GENID_SUCCESS )
|
||||
{
|
||||
printf( "error(%d) : Encryption by HSM\n", ret_code );
|
||||
return ret_code;
|
||||
}
|
||||
ret_code = reply.status;
|
||||
if ( ret_code != CR_GENID_SUCCESS )
|
||||
{
|
||||
printf( "error(%d) : Encrypt Reply Status by HSM\n", ret_code );
|
||||
return ret_code;
|
||||
}
|
||||
|
||||
// buffer copy
|
||||
memcpy( dst_buf, reply.reply.encrypt.cipher.data.generic128.cipher.ptr, size );
|
||||
|
||||
//NFastApp_Free_Command( hsmHandle, NULL, NULL, &cmd ); // 何故かアボートする
|
||||
NFastApp_Free_Reply( hsmHandle, NULL, NULL, &reply );
|
||||
|
||||
return CR_GENID_SUCCESS;
|
||||
} // hsm_aes_encrypt
|
||||
|
||||
int hsm_aes_decrypt( unsigned char *dst_buf, unsigned char *org_buf, int size )
|
||||
{
|
||||
int ret_code = 0;
|
||||
|
||||
M_Command cmd;
|
||||
M_Reply reply;
|
||||
M_IV dec_iv;
|
||||
|
||||
memset( &cmd, 0, sizeof( cmd ) );
|
||||
memset( &reply, 0, sizeof( reply ) );
|
||||
|
||||
// iv set
|
||||
dec_iv.mech = Mech_RijndaelmCBCpNONE;
|
||||
memset( dec_iv.iv.generic128.iv.bytes, 0, sizeof( dec_iv.iv.generic128.iv.bytes ) );
|
||||
|
||||
// decyrpt
|
||||
cmd.cmd = Cmd_Decrypt;
|
||||
cmd.args.decrypt.flags = 0;
|
||||
cmd.args.decrypt.key = hsmAeskeyid;
|
||||
cmd.args.decrypt.mech = Mech_RijndaelmCBCpNONE;
|
||||
cmd.args.decrypt.cipher.mech = Mech_RijndaelmCBCpNONE;
|
||||
cmd.args.decrypt.cipher.data.generic128.cipher.len = size;
|
||||
cmd.args.decrypt.cipher.data.generic128.cipher.ptr = org_buf;
|
||||
cmd.args.decrypt.cipher.iv = dec_iv.iv;
|
||||
cmd.args.decrypt.reply_type = PlainTextType_Bytes;
|
||||
|
||||
// decrypt command issue
|
||||
ret_code = NFastApp_Transact( hsmConnection, NULL, &cmd, &reply, NULL );
|
||||
if ( ret_code != CR_GENID_SUCCESS )
|
||||
{
|
||||
printf( "error(%d) : Decryption by HSM\n", ret_code );
|
||||
return ret_code;
|
||||
}
|
||||
ret_code = reply.status;
|
||||
if ( ret_code != CR_GENID_SUCCESS )
|
||||
{
|
||||
printf( "error(%d) : Decrypt Reply Status by HSM\n", ret_code );
|
||||
return ret_code;
|
||||
}
|
||||
|
||||
// buffer copy
|
||||
memcpy( dst_buf, reply.reply.decrypt.plain.data.bytes.data.ptr, size );
|
||||
|
||||
//NFastApp_Free_Command( hsmHandle, NULL, NULL, &cmd ); // 何故かアボートする
|
||||
NFastApp_Free_Reply( hsmHandle, NULL, NULL, &reply );
|
||||
|
||||
return CR_GENID_SUCCESS;
|
||||
} // hsm_aes_decrypt
|
||||
|
||||
int hsm_rsa_encrypt( unsigned char *dst_buf, unsigned char *org_buf, int size )
|
||||
{
|
||||
int ret_code = 0;
|
||||
@ -735,4 +739,6 @@ int hsm_rsa_decrypt( unsigned char *dst_buf, unsigned char *org_buf, int size )
|
||||
return CR_GENID_SUCCESS;
|
||||
} // hsm_rsa_decrypt
|
||||
|
||||
#endif // ENCRYPT_AES
|
||||
|
||||
#endif // USE_HSM
|
||||
|
||||
Loading…
Reference in New Issue
Block a user