Repository navigation
Fixes: Fenrir #12347 and #12348: - #11694
aidankeefe2022 wants to merge 2 commits into
Conversation
|
retest this please |
|
wolfSSL-Fenrir-bot
left a comment
There was a problem hiding this comment.
Fenrir Automated Review — PR #11694
Scan targets checked: wolfcrypt-port-bugs, wolfssl-src, wolfssl-bugs
Coverage: 4 of 4 in-scope changed file(s) opened by the reviewer
Fenrir result: Approved ✅
No new issues found in the changed files.
Advisory only — this automated result does not count as a GitHub approval.
Review tier: Lite
16bc566 to
1786b83
Compare
wolfSSL-Fenrir-bot
left a comment
There was a problem hiding this comment.
Fenrir Automated Review — PR #11694
Scan targets checked: none
Unchanged since last review (not re-run): wolfcrypt-port-bugs, wolfssl-src, wolfssl-bugs
Fenrir result: Approved ✅
No new issues found in the changed files.
Advisory only — this automated result does not count as a GitHub approval.
Review tier: Lite
85d672d to
ed95b9a
Compare
quickassist_sync.c (#12347): - IntelQaSymAesCbcEncrypt/Decrypt overwrote the caller's IV even when IntelQaSymCipher failed, which corrupted the chaining state for a retry. The IV is now only advanced when ret == 0. - IntelQaSymDes3CbcEncrypt/Decrypt never advanced the IV, so 3DES-CBC split across several calls on one context did not match a single combined operation. They now chain the IV the same way AES does. On decrypt, the last ciphertext block is saved before the operation so in-place processing still works. - All four wrappers now check for a full block IV and a non-zero, block-aligned size before working out the last block, so out-of-range last-block arithmetic is no longer possible. - The wrapper IV parameters are now non-const (byte*), since the wrappers write to them. quickassist.c (#12348): - IntelQaSymCipherFree cleared the auth tag fields but left op.cipher.iv/ivSz set. A later decrypt or AES-GCM completion on the same device could then have the callback write the last output block into a stale encrypt IV pointer. Cleanup now clears iv/ivSz and wipes the staged IV. IntelQaSymCipher also resets these fields on every submit, because the op union is shared with other algorithms. - Async decrypt used to copy the next IV into the caller's buffer at submit time, so a failed operation still advanced the chaining state. The last input block is now staged in a new op.cipher.ivTmp buffer (size QAT_CIPHER_MAX_IV_SZ) and IntelQaSymCipherCallback copies it to the caller's IV only when the operation succeeds. test.c: - Add des3_cbc_split_test and aes_cbc_split_test. They check that two-call encrypt, two-call decrypt and two-call in-place decrypt give the same result as a single call. Under async builds each piece is sized to reach WC_ASYNC_THRESH_* so the split calls go through the hardware path. - some ports do not support this behavior so the test is skipped when they are included
ed95b9a to
261dee0
Compare
wolfSSL-Fenrir-bot
left a comment
There was a problem hiding this comment.
Fenrir Automated Review — PR #11694
Scan targets checked: wolfcrypt-port-bugs, wolfssl-src, wolfssl-bugs
Coverage: 1 of 1 in-scope changed file(s) opened by the reviewer
Findings: 1
1 finding(s) posted as inline comments (see file-level comments below)
This review was generated automatically by Fenrir. Reported findings require changes before merge.
Review tier: Lite

quickassist_sync.c (#12347):
quickassist.c (#12348):
test.c: