Encryption
Block and stream ciphers by mode: AES (ECB, CBC, CTR, CFB, OFB, GCM, CCM, XTS), ARIA, Camellia, DES/3DES, ChaCha20, ChaCha20-Poly1305, RC4 (legacy; not recommended).
Streaming / incremental processing
If your application receives data in chunks, use context-based APIs:
- AES:
noxtls_aes_init()/noxtls_aes_update()/noxtls_aes_final() - ARIA:
noxtls_aria_init()/noxtls_aria_update()/noxtls_aria_final() - Camellia:
noxtls_camellia_init()/noxtls_camellia_update()/noxtls_camellia_final() - ChaCha20 already supports streaming with
noxtls_chacha20_init()/noxtls_chacha20_process() - RC4 supports streaming with
rc4_init()/noxtls_rc4_process()(legacy only; RC4 is weak and should not be used for new designs) - Poly1305 already supports incremental MAC with
poly1305_init()/poly1305_update()/poly1305_final()
Pages
AES (grouped)
- AES — Overview and links to all AES modes
- AES - ECB — API for AES ECB
- AES - CBC — API for AES CBC
- AES - CTR — API for AES CTR
- AES - CFB — API for AES CFB
- AES - OFB — API for AES OFB
- AES - GCM — API for AES GCM
- AES - CCM — API for AES CCM
- AES - XTS — API for AES XTS
- AES (shared) — Shared types and streaming API
ARIA
- ARIA - ECB — API for ARIA ECB
- ARIA - CBC — API for ARIA CBC
- ARIA - CTR — API for ARIA CTR
- ARIA - CFB — API for ARIA CFB
- ARIA - OFB — API for ARIA OFB
- ARIA (shared) — API for ARIA (shared)
Camellia (grouped)
- Camellia — Overview and links to all Camellia modes
- Camellia - ECB — API for Camellia ECB
- Camellia - CBC — API for Camellia CBC
- Camellia - CTR — API for Camellia CTR
- Camellia - CFB — API for Camellia CFB
- Camellia - OFB — API for Camellia OFB
- Camellia (shared) — Shared types and streaming API
Other
- DES / 3DES — API for DES and 3DES
- ChaCha20-Poly1305 — API for ChaCha20-Poly1305
- ChaCha20 — API for ChaCha20
- RC4 — API for RC4 (legacy only; weak, do not use for new designs)