You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add compile-time crypto callback async poll for record ciphers
A crypto callback that returns WC_PENDING_E for a TLS record cipher
silently corrupted records: Encrypt()/Decrypt() advance the cipher
state to CIPHER_STATE_END before the pending check, so on resume the
record is shipped without re-running the cipher.
WOLF_CRYPTO_CB_ASYNC_POLL gives crypto callback devices the QAT/Nitrox
"poll to fill output" completion model. On WC_PENDING_E the async event
stays queued; wolfSSL_AsyncPoll() re-enters the device with the new
WC_ALGO_TYPE_ASYNC_POLL (wc_CryptoCb_Poll) to finish the job and fill
the output buffer. Only the two async record ciphers (AES and 3DES
markers) are routed to poll completion; handshake PK keeps the
re-invoke model. The wolfSSL_AsyncPop eviction is gated for
poll-capable devices so the existing resume-at-CIPHER_STATE_END path
becomes correct with no record state-machine changes.
Without the feature (and without a software/QAT/Cavium backend) a
pending bulk cipher op now errors out with ASYNC_OP_E instead of
corrupting the record, and configure/cryptocb.c warn about the
unsupported combination.
Tests in tests/api/test_async.c cover direct AES-GCM/CBC/CCM and 3DES
poll completion at multiple pend depths, negative cases for cipher
types defined but not dispatched (ChaCha, single DES), and full TLS 1.3
handshake+echo including the no-poll failure path.
0 commit comments