From b16120e6d166c5c735055d5634c45127c1cbf81a Mon Sep 17 00:00:00 2001 From: n2460 Date: Thu, 19 Dec 2013 11:32:53 +0000 Subject: [PATCH] =?UTF-8?q?hsm=5Futils/sign=5Fverify=5Frsa=5Fpkcs1=5Fsha25?= =?UTF-8?q?6:=E7=BD=B2=E5=90=8D=E3=82=92=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=81=AB=E5=87=BA=E5=8A=9B=E3=81=A7=E3=81=8D=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=9F=E3=80=82?= 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@234 ff987cc8-cf2f-4642-8568-d52cce064691 --- .../hsm_utils/sign_verify_rsa_pkcs1_sha256.c | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/trunk/hsm_utils/sign_verify_rsa_pkcs1_sha256.c b/trunk/hsm_utils/sign_verify_rsa_pkcs1_sha256.c index f4f0e95..6379e91 100644 --- a/trunk/hsm_utils/sign_verify_rsa_pkcs1_sha256.c +++ b/trunk/hsm_utils/sign_verify_rsa_pkcs1_sha256.c @@ -69,6 +69,7 @@ int loadFileSize = 0; int validFileSize = 0; int offsetFileSize = 0; unsigned char *loadFileBuf = NULL; +char *writeFilePath = NULL; // function int signVerifyRSAPKCS1Sha256( NFKM_KeyIdent priv_ident, NFKM_KeyIdent pub_ident ); @@ -234,6 +235,31 @@ int signVerifyRSAPKCS1Sha256( NFKM_KeyIdent priv_ident, NFKM_KeyIdent pub_ident // show data PrintArray( (char*)"HSM Sign", middlePtr, middleLen ); + // save sign data + if (writeFilePath) + { + FILE *pSaveFile; + + pSaveFile = fopen( writeFilePath, "wb" ); + if (pSaveFile == NULL) + { + printf("file open error : %s\n", writeFilePath); + return 1; + } + else + { + if (fwrite( middlePtr, middleLen, 1, pSaveFile ) != 1) + { + printf("file write error : %s\n", writeFilePath); + } + else + { + printf( "Success : Sign Data written to %s\n", writeFilePath ); + } + } + fclose( pSaveFile ); + } + NFastApp_Free_Command( handle, NULL, NULL, &cmd ); NFastApp_Free_Reply( handle, NULL, NULL, &reply ); @@ -435,6 +461,7 @@ int main( int argc, char *argv[] ) { "priv", required_argument, 0, 0 }, { "pub", required_argument, 0, 0 }, { "in", required_argument, 0, 0 }, + { "out", required_argument, 0, 0 }, { "size", required_argument, 0, 0 }, { "offset", required_argument, 0, 0 }, { 0, 0, 0, 0 } @@ -468,11 +495,15 @@ int main( int argc, char *argv[] ) { loadFilePath = optarg; } break; - case 4 : // size + case 4 : // out + { + writeFilePath = optarg; + } break; + case 5 : // size { validFileSize = atoi(optarg); } break; - case 5 : // offset + case 6 : // offset { offsetFileSize = atoi(optarg); } break; @@ -488,6 +519,8 @@ int main( int argc, char *argv[] ) printf( " Default=%s\n", DEFAULT_PUB_KEY_FILE_PATH ); printf( " --in filename : input file for SHA256\n" ); printf( " Default=reasonable array\n" ); + printf( " --out filename : output sign data\n" ); + printf( " Default=N/A\n" ); printf( " --size size : valid file size for SHA256\n" ); printf( " --offset fize : offset file size for SHA256\n" ); printf( "\n" ); @@ -535,7 +568,7 @@ int main( int argc, char *argv[] ) return 1; } - // create rsa-pss cert + // create rsa pkcs1 sha256 sign & verify result = signVerifyRSAPKCS1Sha256( priv_keyident, pub_keyident ); if ( result != Status_OK ) {