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;
|
return CR_GENID_SUCCESS;
|
||||||
} // hsm_get_rtc
|
} // hsm_get_rtc
|
||||||
|
|
||||||
|
#ifdef ENCYRPT_AES
|
||||||
|
|
||||||
int hsm_aes_load_key( void )
|
int hsm_aes_load_key( void )
|
||||||
{
|
{
|
||||||
int ret_code = 0;
|
int ret_code = 0;
|
||||||
@ -383,6 +385,105 @@ int hsm_aes_load_key( void )
|
|||||||
return CR_GENID_SUCCESS;
|
return CR_GENID_SUCCESS;
|
||||||
} // hsm_aes_load_key
|
} // 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 hsm_rsa_load_keypair( void )
|
||||||
{
|
{
|
||||||
int ret_code = 0;
|
int ret_code = 0;
|
||||||
@ -553,103 +654,6 @@ int hsm_rsa_load_keypair( void )
|
|||||||
return CR_GENID_SUCCESS;
|
return CR_GENID_SUCCESS;
|
||||||
} // hsm_rsa_load_keypair
|
} // 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 hsm_rsa_encrypt( unsigned char *dst_buf, unsigned char *org_buf, int size )
|
||||||
{
|
{
|
||||||
int ret_code = 0;
|
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;
|
return CR_GENID_SUCCESS;
|
||||||
} // hsm_rsa_decrypt
|
} // hsm_rsa_decrypt
|
||||||
|
|
||||||
|
#endif // ENCRYPT_AES
|
||||||
|
|
||||||
#endif // USE_HSM
|
#endif // USE_HSM
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user