1
0
mirror of https://github.com/wolfSSL/wolfssl.git synced 2026-10-24 04:09:07 +03:00

Addressed review comments

This commit is contained in:
Hideki Miyazaki
2026-09-30 16:58:40 +09:00
parent 81741b1939
commit 45b8dc2f61
2 changed files with 24 additions and 17 deletions

View File

@@ -99,8 +99,8 @@ example_keys/
+-- rsa_public.pem matching public key, used to verify the signature
+-- generate_SignedCA.sh sign + verify + convert to C, in one step (Linux/macOS/Git Bash)
+-- generate_SignedCA.bat Windows cmd.exe/PowerShell wrapper (calls the .sh via Git Bash)
+-- ca-cert.der.sign pre-generated: RSA-PSS signature over certs/ca-cert.der
+-- ca-cert.der.c pre-generated: the above, as a C byte array
+-- ca-ecc-cert.der.sign pre-generated: RSA-PSS signature over certs/ca-ecc-cert.der
+-- ca-ecc-cert.der.c pre-generated: the above, as a C byte array
```
Running the script above also writes `<name>.der.sign` and `<name>.der.c` next to it
(e.g. `ca-cert.der.sign`/`ca-cert.der.c`, `ca-ecc-cert.der.sign`/`ca-ecc-cert.der.c`) --
these are generated output, not checked into this tree.

View File

@@ -340,6 +340,7 @@ int wc_fspsm_AesGcmEncrypt(struct Aes* aes, byte* out,
uint8_t delta;
uint8_t aadDelta;
int initOk = 0;
int updateOk = 0;
const uint8_t* iv_l = NULL;
uint32_t ivSz_l = 0;
@@ -508,7 +509,8 @@ int wc_fspsm_AesGcmEncrypt(struct Aes* aes, byte* out,
&out_len_tmp);
out_len += out_len_tmp;
}
if (ret != FSP_SUCCESS) {
updateOk = (ret == FSP_SUCCESS);
if (!updateOk) {
WOLFSSL_MSG("R_XXXX_AesXXXGcmEncryptUpdate2: failed");
ret = -1;
}
@@ -537,7 +539,7 @@ int wc_fspsm_AesGcmEncrypt(struct Aes* aes, byte* out,
#endif
aTagBuf);
if (ret == FSP_SUCCESS) {
if (ret == FSP_SUCCESS && updateOk) {
#if (WOLFSSL_RENESAS_RZFSP_VER >= 220)
out_len += out_len_tmp;
dataLen = out_len;
@@ -554,7 +556,9 @@ int wc_fspsm_AesGcmEncrypt(struct Aes* aes, byte* out,
}
}
else {
WOLFSSL_MSG("R_SCE_AesxxxGcmEncryptFinal: failed");
if (ret != FSP_SUCCESS) {
WOLFSSL_MSG("R_SCE_AesxxxGcmEncryptFinal: failed");
}
ret = -1;
}
}
@@ -613,6 +617,7 @@ int wc_fspsm_AesGcmDecrypt(struct Aes* aes, byte* out,
uint8_t delta;
uint8_t aadDelta;
int initOk = 0;
int updateOk = 0;
const uint8_t* iv_l = NULL;
uint32_t ivSz_l = 0;
@@ -771,7 +776,8 @@ int wc_fspsm_AesGcmDecrypt(struct Aes* aes, byte* out,
plainBuf, sz, NULL, 0UL, &out_len_tmp);
out_len += out_len_tmp;
}
if (ret != FSP_SUCCESS) {
updateOk = (ret == FSP_SUCCESS);
if (!updateOk) {
WOLFSSL_MSG("R_XXXX_AesXXXGcmDecryptUpdate: failed in decrypt");
ret = -1;
}
@@ -800,7 +806,7 @@ int wc_fspsm_AesGcmDecrypt(struct Aes* aes, byte* out,
aTagBuf,
min(16, authTagSz));
if (ret == FSP_SUCCESS) {
if (ret == FSP_SUCCESS && updateOk) {
#if (WOLFSSL_RENESAS_RZFSP_VER >= 220)
out_len += out_len_tmp;
dataLen = out_len;
@@ -814,21 +820,22 @@ int wc_fspsm_AesGcmDecrypt(struct Aes* aes, byte* out,
XMEMCPY(out, plainBuf, dataLen);
}
}
else {
else if (ret != FSP_SUCCESS) {
WOLFSSL_MSG("R_XXXX_AesXXXGcmDecryptFinal: failed");
/* A bad/tampered auth tag is reported by the hardware as one
* of these FSP-specific codes, not a generic failure -- the
* wolfCrypt API contract requires AES_GCM_AUTH_E specifically
* here (callers, and wolfcrypt_test()'s tampered-tag test,
* distinguish "authentication failed" from other errors). */
if (ret == FSP_ERR_CRYPTO_SCE_AUTHENTICATION ||
ret == FSP_ERR_CRYPTO_AUTHENTICATION_FAILED) {
/* Only map to AES_GCM_AUTH_E if Update actually succeeded. */
if (updateOk &&
(ret == FSP_ERR_CRYPTO_SCE_AUTHENTICATION ||
ret == FSP_ERR_CRYPTO_AUTHENTICATION_FAILED)) {
ret = AES_GCM_AUTH_E;
}
else {
ret = -1;
}
}
else {
/* Final reported success, but Update had already failed. */
ret = -1;
}
}
}