nuttx/include/crypto
Felipe Moura ce645060fa crypto: add CRYPTO_AES_CTR_SSH variant (128-bit big-endian counter)
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>
2026-07-16 15:42:10 +08:00
..
aes.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
blf.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
bn.h style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
cast.h LICENSE: update NuttX-PublicDomain SPDX identifier 2025-12-26 19:46:12 +08:00
chachapoly.h crypto: add CRYPTO_CHACHA20_DJB variant (64-bit counter/nonce) 2026-07-11 17:58:55 -03:00
cmac.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
cryptodev.h crypto: add CRYPTO_AES_CTR_SSH variant (128-bit big-endian counter) 2026-07-16 15:42:10 +08:00
cryptosoft.h crypto/cryptosoft: Add support for PBKDF2 2026-03-29 17:23:03 -03:00
curve25519.h include/crypto/curve25519.h: fix gcc14 error 2024-05-31 18:14:11 -03:00
ecc.h crypto/ecc: add SPDX license identifier 2026-01-26 10:55:57 +08:00
gmac.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
hmac.h crypto/hmac: Fix typo in function implementation names 2025-08-13 23:11:02 +08:00
idgen.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
key_wrap.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
md5.h LICENSE: update NuttX-PublicDomain SPDX identifier 2025-12-26 19:46:12 +08:00
poly1305.h LICENSE: update NuttX-PublicDomain SPDX identifier 2025-12-26 19:46:12 +08:00
rijndael.h LICENSE: update NuttX-PublicDomain SPDX identifier 2025-12-26 19:46:12 +08:00
rmd160.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
sha1.h LICENSE: update NuttX-PublicDomain SPDX identifier 2025-12-26 19:46:12 +08:00
sha2.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
siphash.h crypto/siphash: avoid redefine name issue 2026-01-19 23:25:37 +08:00
xform.h crypto: add CRYPTO_AES_CTR_SSH variant (128-bit big-endian counter) 2026-07-16 15:42:10 +08:00