From 7416b817d871c1c9bdd83b974d073f99c28e8e44 Mon Sep 17 00:00:00 2001 From: Paul Adelsbach Date: Mon, 16 Mar 2026 13:28:26 -0700 Subject: [PATCH] Misc fixes in SHE server --- src/wh_server_she.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/wh_server_she.c b/src/wh_server_she.c index 33add181..ba9227c8 100644 --- a/src/wh_server_she.c +++ b/src/wh_server_she.c @@ -214,6 +214,7 @@ static int _SetUid(whServerContext* server, uint16_t magic, uint16_t req_size, resp.rc = ret; (void)wh_MessageShe_TranslateSetUidResponse(magic, &resp, resp_packet); + *out_resp_size = sizeof(resp); return ret; } @@ -749,7 +750,7 @@ static int _ExportRamKey(whServerContext* server, uint16_t magic, /* set the counter, flags and ram key */ memset(resp.messageTwo, 0, sizeof(resp.messageTwo)); /* set count to 1 */ - counter_val = (wh_Utils_htonl(1) << 4); + counter_val = wh_Utils_htonl(1 << 4); memcpy(resp.messageTwo, &counter_val, sizeof(uint32_t)); keySz = WH_SHE_KEY_SZ; ret = wh_Server_KeystoreReadKey( @@ -819,7 +820,7 @@ static int _ExportRamKey(whServerContext* server, uint16_t magic, if (ret == 0) { memset(resp.messageFour, 0, sizeof(resp.messageFour)); /* set counter to 1, pad with 1 bit */ - counter_val = (wh_Utils_htonl(1) << 4); + counter_val = wh_Utils_htonl(1 << 4); memcpy(resp.messageFour + WH_SHE_KEY_SZ, &counter_val, sizeof(uint32_t)); resp.messageFour[WH_SHE_KEY_SZ + 3] |= 0x08; @@ -1403,7 +1404,10 @@ static int _VerifyMac(whServerContext* server, uint16_t magic, resp.status = 0; } else { + /* Verify mac is allowed to fail, per SHE spec. + Capture status, but return success. */ resp.status = 1; + ret = 0; } } else {