mirror of
https://github.com/apache/nuttx.git
synced 2026-08-01 20:28:58 +00:00
The existing CRYPTO_AES_CTR is the RFC 3686 profile: the last 4 bytes of the key are a nonce, the IV is 8 bytes and only the low 32 bits of the counter block are incremented. SSH aes128/192/256-ctr (RFC 4344) instead uses the key as-is (no embedded nonce) and treats the whole 16-byte IV as the initial counter block, incremented as a 128-bit big-endian integer, with the first keystream block being E(IV). Add CRYPTO_AES_CTR_SSH as a new enc_xform mirroring the CRYPTO_CHACHA20_DJB addition. It reuses struct aes_ctr_ctx and the AES block; only setkey (full key, no nonce), reinit (full 16-byte counter) and crypt (encrypt-then- increment over all 16 bytes) differ from the RFC 3686 variant. Keystream validated against `openssl enc -aes-128-ctr`, including a counter that carries across byte boundaries and a non-block-aligned tail. Signed-off-by: Felipe Moura <moura.fmo@gmail.com> |
||
|---|---|---|
| .. | ||
| aes.h | ||
| blf.h | ||
| bn.h | ||
| cast.h | ||
| chachapoly.h | ||
| cmac.h | ||
| cryptodev.h | ||
| cryptosoft.h | ||
| curve25519.h | ||
| ecc.h | ||
| gmac.h | ||
| hmac.h | ||
| idgen.h | ||
| key_wrap.h | ||
| md5.h | ||
| poly1305.h | ||
| rijndael.h | ||
| rmd160.h | ||
| sha1.h | ||
| sha2.h | ||
| siphash.h | ||
| xform.h | ||