nuttx/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.c crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
blake2s.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
blf.c crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
bn.c crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
cast.c LICENSE: update NuttX-PublicDomain SPDX identifier 2025-12-26 19:46:12 +08:00
castsb.h LICENSE: update NuttX-PublicDomain SPDX identifier 2025-12-26 19:46:12 +08:00
chacha_private.h crypto: Add ChaCha20/ChaCha20-Poly1305 to /dev/crypto, fix RFC 8439 nonce. 2026-07-11 10:19:39 -03:00
chachapoly.c crypto: add CRYPTO_CHACHA20_DJB variant (64-bit counter/nonce) 2026-07-11 17:58:55 -03:00
cmac.c crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
CMakeLists.txt crypto: decouple curve25519 and idgen from random pool 2026-04-07 09:33:34 +08:00
crypto.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
cryptodev.c crypto: add CRYPTO_AES_CTR_SSH variant (128-bit big-endian counter) 2026-07-16 15:42:10 +08:00
cryptosoft.c crypto: add CRYPTO_AES_CTR_SSH variant (128-bit big-endian counter) 2026-07-16 15:42:10 +08:00
curve25519.c crypto: unify Private Types banners 2025-05-28 10:17:15 +08:00
des_locl.h crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
ecb3_enc.c crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
ecb_enc.c crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
ecc.c crypto/ecc: add SPDX license identifier 2026-01-26 10:55:57 +08:00
gmac.c crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
hmac.c crypto/hmac: Fix typo in function implementation names 2025-08-13 23:11:02 +08:00
hmac_buff.c crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
idgen.c crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
Kconfig crypto: decouple curve25519 and idgen from random pool 2026-04-07 09:33:34 +08:00
key_wrap.c crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
Makefile crypto: decouple curve25519 and idgen from random pool 2026-04-07 09:33:34 +08:00
md5.c LICENSE: update NuttX-PublicDomain SPDX identifier 2025-12-26 19:46:12 +08:00
podd.h crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
poly1305.c LICENSE: update NuttX-PublicDomain SPDX identifier 2025-12-26 19:46:12 +08:00
random_pool.c !nuttx: drop redundant casts on tv_sec/tv_nsec and fix printf formats 2026-05-19 16:21:28 +08:00
rijndael.c LICENSE: update NuttX-PublicDomain SPDX identifier 2025-12-26 19:46:12 +08:00
rmd160.c crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
set_key.c crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
sha1.c LICENSE: update NuttX-PublicDomain SPDX identifier 2025-12-26 19:46:12 +08:00
sha2.c crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
siphash.c crypto/siphash: avoid redefine name issue 2026-01-19 23:25:37 +08:00
sk.h crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
spr.h crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
testmngr.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
testmngr.h crypto: migrate to SPDX identifier 2024-11-06 20:10:37 +08:00
xform.c crypto: add CRYPTO_AES_CTR_SSH variant (128-bit big-endian counter) 2026-07-16 15:42:10 +08:00