Cleanups to signature example. Added return code checking and clarified the malloc values used.
parent
8da68556c8
commit
698c5ecf63
|
@ -32,6 +32,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#define RSA_KEY_SIZE 2048
|
#define RSA_KEY_SIZE 2048
|
||||||
|
#define DER_FILE_BUFFER 2048 /* max DER size */
|
||||||
|
|
||||||
void hexdump(const void *buffer, word32 len, byte cols)
|
void hexdump(const void *buffer, word32 len, byte cols)
|
||||||
{
|
{
|
||||||
|
@ -173,14 +174,15 @@ int rsa_load_der_file(const char* derFile, RsaKey *rsaKey)
|
||||||
int ret = EXIT_FAILURE;
|
int ret = EXIT_FAILURE;
|
||||||
FILE *file;
|
FILE *file;
|
||||||
byte *buffer = NULL;
|
byte *buffer = NULL;
|
||||||
|
word32 bufSize = DER_FILE_BUFFER;
|
||||||
word32 bytes = 0;
|
word32 bytes = 0;
|
||||||
word32 idx = 0;
|
word32 idx = 0;
|
||||||
|
|
||||||
file = fopen(derFile, "rb");
|
file = fopen(derFile, "rb");
|
||||||
if (file) {
|
if (file) {
|
||||||
buffer = malloc(RSA_KEY_SIZE);
|
buffer = malloc(bufSize);
|
||||||
if(buffer) {
|
if(buffer) {
|
||||||
bytes = fread(buffer, 1, RSA_KEY_SIZE, file);
|
bytes = fread(buffer, 1, bufSize, file);
|
||||||
fclose(file);
|
fclose(file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -210,8 +212,19 @@ int rsa_sign_verify_test(enum wc_HashType hash_type, enum wc_SignatureType sig_t
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Init */
|
/* Init */
|
||||||
wc_InitRng(&rng);
|
ret = wc_InitRng(&rng);
|
||||||
wc_InitRsaKey(&rsaKey, NULL);
|
if (ret != 0) {
|
||||||
|
printf("Init RNG failed! %d\n", ret);
|
||||||
|
ret = EXIT_FAILURE;
|
||||||
|
goto exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = wc_InitRsaKey(&rsaKey, NULL);
|
||||||
|
if (ret != 0) {
|
||||||
|
printf("Init RSA key failed! %d\n", ret);
|
||||||
|
ret = EXIT_FAILURE;
|
||||||
|
goto exit;
|
||||||
|
}
|
||||||
|
|
||||||
printf("RSA Key Size %d\n", RSA_KEY_SIZE);
|
printf("RSA Key Size %d\n", RSA_KEY_SIZE);
|
||||||
|
|
||||||
|
@ -223,7 +236,7 @@ int rsa_sign_verify_test(enum wc_HashType hash_type, enum wc_SignatureType sig_t
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Display key data */
|
/* Display key data */
|
||||||
rsaKeyLen = RSA_KEY_SIZE;
|
rsaKeyLen = DER_FILE_BUFFER;
|
||||||
rsaKeyBuf = malloc(rsaKeyLen);
|
rsaKeyBuf = malloc(rsaKeyLen);
|
||||||
ret = wc_RsaKeyToDer(&rsaKey, rsaKeyBuf, rsaKeyLen);
|
ret = wc_RsaKeyToDer(&rsaKey, rsaKeyBuf, rsaKeyLen);
|
||||||
if (ret <= 0) {
|
if (ret <= 0) {
|
||||||
|
@ -235,7 +248,7 @@ int rsa_sign_verify_test(enum wc_HashType hash_type, enum wc_SignatureType sig_t
|
||||||
printf("RSA Key: Len %d\n", rsaKeyLen);
|
printf("RSA Key: Len %d\n", rsaKeyLen);
|
||||||
hexdump(rsaKeyBuf, rsaKeyLen, 16);
|
hexdump(rsaKeyBuf, rsaKeyLen, 16);
|
||||||
|
|
||||||
rsaPubKeyLen = RSA_KEY_SIZE;
|
rsaPubKeyLen = DER_FILE_BUFFER;
|
||||||
rsaPubKeyBuf = malloc(rsaPubKeyLen);
|
rsaPubKeyBuf = malloc(rsaPubKeyLen);
|
||||||
ret = wc_RsaKeyToPublicDer(&rsaKey, rsaPubKeyBuf, rsaPubKeyLen);
|
ret = wc_RsaKeyToPublicDer(&rsaKey, rsaPubKeyBuf, rsaPubKeyLen);
|
||||||
if (ret <= 0) {
|
if (ret <= 0) {
|
||||||
|
|
Loading…
Reference in New Issue