Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
a20d5d3
Intialized req and resp as well as potenial int overflow issues
jackctj117 Sep 3, 2025
e089fe2
Initalized req resp and int overflow fixes for server_counter
jackctj117 Sep 3, 2025
7284ba4
Intialized req and resp as well as potenial int overflow issues
jackctj117 Sep 3, 2025
bf8bb1d
Initalized req resp and int overflow fixes for server_counter
jackctj117 Sep 3, 2025
6557562
Fix for 572974 Uninitialized scalar variable
jackctj117 Sep 9, 2025
d1e19be
Fixes for unused values
jackctj117 Sep 9, 2025
fd24a81
Merge branch 'coverity-fixes' of github.com:jackctj117/wolfHSM into c…
jackctj117 Sep 9, 2025
1e10397
rebase fix for server crypto3
jackctj117 Sep 11, 2025
46f9323
fix default wolfHSM path capitalization and relative path
bigbrett Sep 11, 2025
03c7345
rebase fix for server crypto4
jackctj117 Sep 11, 2025
1013d9c
Fixes for unused values
jackctj117 Sep 9, 2025
312d1bc
rebase fix
jackctj117 Sep 11, 2025
bf8c26f
rebase fix for server crypto
jackctj117 Sep 11, 2025
f738840
Fixes for unused values
jackctj117 Sep 9, 2025
7f158da
Support sha2-224, 384 and 512 (#144)
miyazakh Sep 11, 2025
2b381b1
Fix for 572974 Uninitialized scalar variable
jackctj117 Sep 9, 2025
50cfecc
Fixes for unused values
jackctj117 Sep 9, 2025
d1cd85e
Support sha2-224, 384 and 512 (#144)
miyazakh Sep 11, 2025
e6967a2
Fix for 572974 Uninitialized scalar variable
jackctj117 Sep 9, 2025
485e144
Fixes for unused values
jackctj117 Sep 9, 2025
042f375
nvm flash fix to break out of loop and counter fix for overflow constant
jackctj117 Sep 11, 2025
58c0985
Merge branch 'main' into coverity-fixes
jackctj117 Sep 11, 2025
424cb07
Fix for rebase mistake
jackctj117 Sep 11, 2025
634b987
Fix for out-of-bounds access 572970
jackctj117 Sep 12, 2025
69d9703
Fix for 584924 Unchecked return value
jackctj117 Sep 16, 2025
7012d26
Fix for 572988 Untrusted value as argument
jackctj117 Sep 16, 2025
aa4b34c
Fix for 572971 Untrusted value as argument
jackctj117 Sep 16, 2025
ec71901
Fix for 572959 Dereference before null check
jackctj117 Sep 16, 2025
3b475c8
Fix for 572992 Unused value
jackctj117 Sep 16, 2025
1c697a3
Fix for 572962 Unused value
jackctj117 Sep 16, 2025
bc246f5
Fix for 572946 Overflowed constant
jackctj117 Sep 17, 2025
1a2bae5
cov-int removal
jackctj117 Sep 18, 2025
5e54474
Fix wolfHSM error checks, remove unrelated code
jackctj117 Sep 18, 2025
67ea3fa
Remove verbose AI comments, improve code clarity
jackctj117 Sep 18, 2025
0761f98
Add integer underflow checks and improve type safety
jackctj117 Sep 19, 2025
0f32747
Fix for 584924 Unchecked return value
jackctj117 Sep 22, 2025
0716db2
Fix for 572980 Uninitialized scalar variable
jackctj117 Sep 22, 2025
3504fc4
Removed 572980 fix, added clang-formatting
jackctj117 Sep 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 16 additions & 14 deletions src/wh_server_counter.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,16 +56,17 @@ int wh_Server_HandleCounter(whServerContext* server, uint16_t magic,

switch (action) {
case WH_COUNTER_INIT: {
whMessageCounter_InitRequest req;
whMessageCounter_InitResponse resp;
whMessageCounter_InitRequest req = {0};
whMessageCounter_InitResponse resp = {0};

/* translate request */
(void)wh_MessageCounter_TranslateInitRequest(
magic, (whMessageCounter_InitRequest*)req_packet, &req);

/* write 0 to nvm with the supplied id and user_id */
meta->id = WH_MAKE_KEYID(WH_KEYTYPE_COUNTER,
server->comm->client_id, req.counterId);
(uint16_t)server->comm->client_id,
(uint16_t)req.counterId);
/* use the label buffer to hold the counter value */
*counter = req.counter;
ret = wh_Nvm_AddObjectWithReclaim(server->nvm, meta, 0, NULL);
Expand All @@ -83,8 +84,8 @@ int wh_Server_HandleCounter(whServerContext* server, uint16_t magic,
} break;

case WH_COUNTER_INCREMENT: {
whMessageCounter_IncrementRequest req;
whMessageCounter_IncrementResponse resp;
whMessageCounter_IncrementRequest req = {0};
whMessageCounter_IncrementResponse resp = {0};

/* translate request */
(void)wh_MessageCounter_TranslateIncrementRequest(
Expand All @@ -93,8 +94,8 @@ int wh_Server_HandleCounter(whServerContext* server, uint16_t magic,
/* read the counter, stored in the metadata label */
ret = wh_Nvm_GetMetadata(server->nvm,
WH_MAKE_KEYID(WH_KEYTYPE_COUNTER,
server->comm->client_id,
req.counterId),
(uint16_t)server->comm->client_id,
(uint16_t)req.counterId),
meta);
resp.rc = ret;

Expand Down Expand Up @@ -128,8 +129,8 @@ int wh_Server_HandleCounter(whServerContext* server, uint16_t magic,
} break;

case WH_COUNTER_READ: {
whMessageCounter_ReadRequest req;
whMessageCounter_ReadResponse resp;
whMessageCounter_ReadRequest req = {0};
whMessageCounter_ReadResponse resp = {0};

/* translate request */
(void)wh_MessageCounter_TranslateReadRequest(
Expand All @@ -138,8 +139,8 @@ int wh_Server_HandleCounter(whServerContext* server, uint16_t magic,
/* read the counter, stored in the metadata label */
ret = wh_Nvm_GetMetadata(server->nvm,
WH_MAKE_KEYID(WH_KEYTYPE_COUNTER,
server->comm->client_id,
req.counterId),
(uint16_t)server->comm->client_id,
(uint16_t)req.counterId),
meta);
resp.rc = ret;

Expand All @@ -158,15 +159,16 @@ int wh_Server_HandleCounter(whServerContext* server, uint16_t magic,
} break;

case WH_COUNTER_DESTROY: {
whMessageCounter_DestroyRequest req;
whMessageCounter_DestroyResponse resp;
whMessageCounter_DestroyRequest req = {0};
whMessageCounter_DestroyResponse resp = {0};

/* translate request */
(void)wh_MessageCounter_TranslateDestroyRequest(
magic, (whMessageCounter_DestroyRequest*)req_packet, &req);

counterId = WH_MAKE_KEYID(WH_KEYTYPE_COUNTER,
server->comm->client_id, req.counterId);
(uint16_t)server->comm->client_id,
(uint16_t)req.counterId);

ret = wh_Nvm_DestroyObjects(server->nvm, 1, &counterId);
resp.rc = ret;
Expand Down
59 changes: 33 additions & 26 deletions src/wh_server_keystore.c
Original file line number Diff line number Diff line change
Expand Up @@ -551,8 +551,8 @@ int wh_Server_HandleKeyRequest(whServerContext* server, uint16_t magic,

switch (action) {
case WH_KEY_CACHE: {
whMessageKeystore_CacheRequest req;
whMessageKeystore_CacheResponse resp;
whMessageKeystore_CacheRequest req = {0};
whMessageKeystore_CacheResponse resp = {0};

/* translate request */
(void)wh_MessageKeystore_TranslateCacheRequest(
Expand All @@ -562,8 +562,9 @@ int wh_Server_HandleKeyRequest(whServerContext* server, uint16_t magic,
in = (uint8_t*)req_packet + sizeof(req);

/* set the metadata fields */
meta->id = WH_MAKE_KEYID(WH_KEYTYPE_CRYPTO, server->comm->client_id,
req.id);
meta->id = WH_MAKE_KEYID(WH_KEYTYPE_CRYPTO,
(uint16_t)server->comm->client_id,
(uint16_t)req.id);
meta->access = WH_NVM_ACCESS_ANY;
meta->flags = req.flags;
meta->len = req.sz;
Expand Down Expand Up @@ -603,16 +604,17 @@ int wh_Server_HandleKeyRequest(whServerContext* server, uint16_t magic,
#ifdef WOLFHSM_CFG_DMA

case WH_KEY_CACHE_DMA: {
whMessageKeystore_CacheDmaRequest req;
whMessageKeystore_CacheDmaResponse resp;
whMessageKeystore_CacheDmaRequest req = {0};
whMessageKeystore_CacheDmaResponse resp = {0};

/* translate request */
(void)wh_MessageKeystore_TranslateCacheDmaRequest(
magic, (whMessageKeystore_CacheDmaRequest*)req_packet, &req);

/* set the metadata fields */
meta->id = WH_MAKE_KEYID(WH_KEYTYPE_CRYPTO, server->comm->client_id,
req.id);
meta->id = WH_MAKE_KEYID(WH_KEYTYPE_CRYPTO,
(uint16_t)server->comm->client_id,
(uint16_t)req.id);
meta->access = WH_NVM_ACCESS_ANY;
meta->flags = req.flags;
meta->len = req.key.sz;
Expand Down Expand Up @@ -654,17 +656,18 @@ int wh_Server_HandleKeyRequest(whServerContext* server, uint16_t magic,
} break;

case WH_KEY_EXPORT_DMA: {
whMessageKeystore_ExportDmaRequest req;
whMessageKeystore_ExportDmaResponse resp;
whMessageKeystore_ExportDmaRequest req = {0};
whMessageKeystore_ExportDmaResponse resp = {0};

/* translate request */
(void)wh_MessageKeystore_TranslateExportDmaRequest(
magic, (whMessageKeystore_ExportDmaRequest*)req_packet, &req);

ret = wh_Server_KeystoreExportKeyDma(
server,
WH_MAKE_KEYID(WH_KEYTYPE_CRYPTO, server->comm->client_id,
req.id),
WH_MAKE_KEYID(WH_KEYTYPE_CRYPTO,
(uint16_t)server->comm->client_id,
(uint16_t)req.id),
req.key.addr, req.key.sz, meta);
resp.rc = ret;
/* propagate bad address to client if DMA operation failed */
Expand All @@ -689,15 +692,16 @@ int wh_Server_HandleKeyRequest(whServerContext* server, uint16_t magic,
#endif /* WOLFHSM_CFG_DMA */

case WH_KEY_EVICT: {
whMessageKeystore_EvictRequest req;
whMessageKeystore_EvictResponse resp;
whMessageKeystore_EvictRequest req = {0};
whMessageKeystore_EvictResponse resp = {0};

(void)wh_MessageKeystore_TranslateEvictRequest(
magic, (whMessageKeystore_EvictRequest*)req_packet, &req);

ret = wh_Server_KeystoreEvictKey(
server, WH_MAKE_KEYID(WH_KEYTYPE_CRYPTO,
server->comm->client_id, req.id));
(uint16_t)server->comm->client_id,
(uint16_t)req.id));
resp.rc = ret;
/* TODO: Are there any fatal server errors? */
ret = WH_ERROR_OK;
Expand All @@ -708,8 +712,8 @@ int wh_Server_HandleKeyRequest(whServerContext* server, uint16_t magic,
} break;

case WH_KEY_EXPORT: {
whMessageKeystore_ExportRequest req;
whMessageKeystore_ExportResponse resp;
whMessageKeystore_ExportRequest req = {0};
whMessageKeystore_ExportResponse resp = {0};
uint32_t keySz;

/* translate request */
Expand All @@ -723,8 +727,9 @@ int wh_Server_HandleKeyRequest(whServerContext* server, uint16_t magic,
/* read the key */
ret = wh_Server_KeystoreReadKey(
server,
WH_MAKE_KEYID(WH_KEYTYPE_CRYPTO, server->comm->client_id,
req.id),
WH_MAKE_KEYID(WH_KEYTYPE_CRYPTO,
(uint16_t)server->comm->client_id,
(uint16_t)req.id),
meta, out, &keySz);

/* Check if key is non-exportable */
Expand Down Expand Up @@ -757,16 +762,17 @@ int wh_Server_HandleKeyRequest(whServerContext* server, uint16_t magic,
} break;

case WH_KEY_COMMIT: {
whMessageKeystore_CommitRequest req;
whMessageKeystore_CommitResponse resp;
whMessageKeystore_CommitRequest req = {0};
whMessageKeystore_CommitResponse resp = {0};

/* translate request */
(void)wh_MessageKeystore_TranslateCommitRequest(
magic, (whMessageKeystore_CommitRequest*)req_packet, &req);

ret = wh_Server_KeystoreCommitKey(
server, WH_MAKE_KEYID(WH_KEYTYPE_CRYPTO,
server->comm->client_id, req.id));
(uint16_t)server->comm->client_id,
(uint16_t)req.id));
resp.rc = ret;
/* TODO: Are there any fatal server errors? */
ret = WH_ERROR_OK;
Expand All @@ -783,16 +789,17 @@ int wh_Server_HandleKeyRequest(whServerContext* server, uint16_t magic,
} break;

case WH_KEY_ERASE: {
whMessageKeystore_EraseRequest req;
whMessageKeystore_EraseResponse resp;
whMessageKeystore_EraseRequest req = {0};
whMessageKeystore_EraseResponse resp = {0};

/* translate request */
(void)wh_MessageKeystore_TranslateEraseRequest(
magic, (whMessageKeystore_EraseRequest*)req_packet, &req);

ret = wh_Server_KeystoreEraseKey(
server, WH_MAKE_KEYID(WH_KEYTYPE_CRYPTO,
server->comm->client_id, req.id));
(uint16_t)server->comm->client_id,
(uint16_t)req.id));
resp.rc = ret;
/* TODO: Are there any fatal server errors? */
ret = WH_ERROR_OK;
Expand Down Expand Up @@ -902,4 +909,4 @@ int wh_Server_KeystoreExportKeyDma(whServerContext* server, whKeyId keyId,
}
#endif /* WOLFHSM_CFG_DMA */

#endif /* !WOLFHSM_CFG_NO_CRYPTO && WOLFHSM_CFG_ENABLE_SERVER */
#endif /* !WOLFHSM_CFG_NO_CRYPTO && WOLFHSM_CFG_ENABLE_SERVER */