diff --git a/Renesas/cs+/RH850/rsapss_sign_verify/example_main.c b/Renesas/cs+/RH850/rsapss_sign_verify/example_main.c index a486e428..3d1d81a3 100644 --- a/Renesas/cs+/RH850/rsapss_sign_verify/example_main.c +++ b/Renesas/cs+/RH850/rsapss_sign_verify/example_main.c @@ -91,7 +91,7 @@ size_t _REL_sizeof_sysheap = SIZEOF_HEAP; void main(void) { - byte ret; + int ret; R_SYSTEM_ClockInit(); R_SYSTEM_TimerInit(); diff --git a/Renesas/cs+/RH850/rsapss_sign_verify/rsapss.c b/Renesas/cs+/RH850/rsapss_sign_verify/rsapss.c index cd95cea9..196125a6 100644 --- a/Renesas/cs+/RH850/rsapss_sign_verify/rsapss.c +++ b/Renesas/cs+/RH850/rsapss_sign_verify/rsapss.c @@ -108,18 +108,19 @@ static int load_rsa_private_key(RsaKey* pRsaKey) static int sign_with_rsa_key(RsaKey* pRsaKey, WC_RNG* rng, const char* msg) { int ret; - + /* Hash message to b signed */ - if (hash_msg(msg, hash) != 0 ) { + ret = hash_msg(msg, hash); + if (ret != 0 ) { goto sign_end; } - + printf("Signing hash of message\n"); /* RSA-PSS sign */ ret = wc_RsaPSS_Sign(hash, sizeof(hash), pSignature, sizeof(pSignature), WC_HASH_TYPE_SHA256, WC_MGF1SHA256, pRsaKey, rng); if (ret <= 0) { - printf(" RSA private encryption failed with error %d\n"); + printf(" RSA private encryption failed with error %d\n", ret); goto sign_end; } @@ -135,7 +136,8 @@ static int verify_with_rsa_public_key(RsaKey* pRsaKey, const char* msg) byte pDecrypted[RSA_KEY_SIZE/8]; byte* pt; /* Hash message to be signed. */ - if (hash_msg(msg, hash) != 0) { + ret = hash_msg(msg, hash); + if (ret != 0) { goto verify_end; } diff --git a/SGX_Linux/trusted/Wolfssl_Enclave.c b/SGX_Linux/trusted/Wolfssl_Enclave.c index b162582f..0cf3e10f 100644 --- a/SGX_Linux/trusted/Wolfssl_Enclave.c +++ b/SGX_Linux/trusted/Wolfssl_Enclave.c @@ -336,7 +336,7 @@ int enc_wolfSSL_Cleanup(void) /* free up all WOLFSSL_CTX's */ for (id = 0; id < MAX_WOLFSSL_CTX; id++) RemoveCTX(id); - wolfSSL_Cleanup(); + return wolfSSL_Cleanup(); } void printf(const char *fmt, ...) @@ -349,16 +349,6 @@ void printf(const char *fmt, ...) ocall_print_string(buf); } -int sprintf(char* buf, const char *fmt, ...) -{ - va_list ap; - int ret; - va_start(ap, fmt); - ret = vsnprintf(buf, BUFSIZ, fmt, ap); - va_end(ap); - return ret; -} - double current_time(void) { double curr; diff --git a/SGX_Linux/trusted/Wolfssl_Enclave.h b/SGX_Linux/trusted/Wolfssl_Enclave.h index 9f7d7f30..9c201fd7 100644 --- a/SGX_Linux/trusted/Wolfssl_Enclave.h +++ b/SGX_Linux/trusted/Wolfssl_Enclave.h @@ -27,7 +27,6 @@ extern "C" { #endif void printf(const char *fmt, ...); -int sprintf(char* buf, const char *fmt, ...); double current_time(void); #if defined(__cplusplus) diff --git a/caam/seco/cryptodev/ecc-sign-verify.c b/caam/seco/cryptodev/ecc-sign-verify.c index 40220086..d623faa5 100644 --- a/caam/seco/cryptodev/ecc-sign-verify.c +++ b/caam/seco/cryptodev/ecc-sign-verify.c @@ -93,7 +93,11 @@ static int createSignature(ecc_key* key, byte* sigOut, word32* sigOutSz, int ret; WC_RNG rng; - wc_InitRng(&rng); + ret = wc_InitRng(&rng); + if (ret != 0) { + printf("wc_InitRng failed with error %d\n", ret); + return ret; + } ret = wc_ecc_sign_hash(msg, msgSz, sigOut, sigOutSz, &rng, key); if (ret != 0) { printf("sign hash failed with error %d\n", ret); @@ -164,7 +168,12 @@ int main(int argc, char** argv) printf("Could not initialize wolfSSL library!\n"); return -1; } - wc_InitRng(&rng); + ret = wc_InitRng(&rng); + if (ret != 0) { + printf("wc_InitRng failed with error %d\n", ret); + wolfCrypt_Cleanup(); + return -1; + } XMEMSET(sig, 0, sigSz); ret = createEccKey(&rng, &hardKey, 32, WOLFSSL_CAAM_DEVID); diff --git a/caam/seco/cryptodev/ecdh.c b/caam/seco/cryptodev/ecdh.c index 01902fc9..43c39473 100644 --- a/caam/seco/cryptodev/ecdh.c +++ b/caam/seco/cryptodev/ecdh.c @@ -97,7 +97,12 @@ int main(int argc, char** argv) return -1; } - wc_InitRng(&rng); + ret = wc_InitRng(&rng); + if (ret != 0) { + printf("wc_InitRng failed with error %d\n", ret); + wolfCrypt_Cleanup(); + return -1; + } ret = createEccKey(&rng, &hwKey, WOLFSSL_CAAM_DEVID); if (ret != 0) { diff --git a/caam/seco/import-key.c b/caam/seco/import-key.c index c8e29ede..ca666bcb 100644 --- a/caam/seco/import-key.c +++ b/caam/seco/import-key.c @@ -158,6 +158,9 @@ int main(int argc, char** argv) TestAesCbc(&enc, &dec); + wc_AesFree(&enc); + wc_AesFree(&dec); + wc_SECO_CloseHSM(); wolfCrypt_Cleanup(); return 0; diff --git a/uefi-library/src/utility_wolf.c b/uefi-library/src/utility_wolf.c index 5794be59..2efce337 100644 --- a/uefi-library/src/utility_wolf.c +++ b/uefi-library/src/utility_wolf.c @@ -83,16 +83,16 @@ unsigned int calculateBufferSize(const char* msg, va_list args) while (*p) { if (*p == '%' && *(p + 1)) { - p++; // Move past '%' - if (*p == 's' || *p == 'a') { // Handle strings + p++; /* Move past '%' */ + if (*p == 's' || *p == 'a') { /* Handle strings */ char* str = va_arg(args_copy, char*); if (str) { - size += XSTRLEN(str); // Add the length of the string + size += XSTRLEN(str); /* Add the length of the string */ } } else if (*p == 'd' || *p == 'u' || *p == 'x') { - va_arg(args_copy, int); // Skip integers + va_arg(args_copy, int); /* Skip integers */ } else if (*p == 'f') { - va_arg(args_copy, double); // Skip doubles + va_arg(args_copy, double); /* Skip doubles */ } } p++; @@ -527,7 +527,7 @@ FILE* fopen(const char* filename, const char* mode) parseAndReplace(filename, temp, "/", "\\"); uefi_printf_wolfssl("Filename After: %s\n", filename); - //parseAndReplace(filename, temp, "./", "\\"); + /* parseAndReplace(filename, temp, "./", "\\"); */ #else temp = (char*)filename; #endif @@ -628,6 +628,7 @@ int fclose(FILE* stream) int ret = -1; (void)stream; EFI_FILE_HANDLE* fPtr = NULL; + EFI_STATUS status; uefi_printf_debug("Inside custom fclose\n"); if (stream == NULL) { @@ -636,7 +637,8 @@ int fclose(FILE* stream) } fPtr = (EFI_FILE_HANDLE*)stream; - uefi_call_wrapper((*fPtr)->Close, 1, *fPtr); + status = uefi_call_wrapper((*fPtr)->Close, 1, *fPtr); + ret = EFI_ERROR(status) ? -1 : 0; XFREE(fPtr, NULL, DYNAMIC_TYPE_TMP_BUFFER); @@ -1043,7 +1045,7 @@ size_t fwrite(const void* ptr, size_t size, size_t count, FILE* stream) { size_t ret = 0; /* Number of items successfully written */ EFI_FILE_HANDLE* fPtr = NULL; - //UINTN totalBytes = count * size * 8; /* Total bytes to write */ + /* UINTN totalBytes = count * size * 8; -- Total bytes to write */ EFI_STATUS status; uefi_printf_debug("Inside custom fwrite\n"); @@ -1335,7 +1337,7 @@ unsigned long long current_time(int reset) /* Convert to total seconds */ unsigned long long total_seconds = - //(days_since_epoch * 86400) + // Uncomment to return epoch time + /* (days_since_epoch * 86400) + -- Uncomment to return epoch time */ (time_uefi.Hour * 3600) + (time_uefi.Minute * 60) + time_uefi.Second; diff --git a/uefi-static/main.c b/uefi-static/main.c index 6eef1b4b..16deb6d0 100644 --- a/uefi-static/main.c +++ b/uefi-static/main.c @@ -13,10 +13,16 @@ #define uefi_printf(_f_, ...) Print(L##_f_, ##__VA_ARGS__) -void char8_to_char16(const char* str8, wchar_t* str16) +void char8_to_char16(const char* str8, wchar_t* str16, size_t cap) { size_t i; size_t size_str8 = strlen(str8); + if (cap == 0) { + return; + } + if (size_str8 > cap - 1) { + size_str8 = cap - 1; + } for (i = 0; i < size_str8; ++i) { str16[i] = (wchar_t)str8[i]; } @@ -26,7 +32,7 @@ void char8_to_char16(const char* str8, wchar_t* str16) void logging_cb(const int logLevel, const char *const logMessage) { wchar_t str16[STR_SIZE]; - char8_to_char16(logMessage, str16); + char8_to_char16(logMessage, str16, STR_SIZE); uefi_printf("%s", str16); }