Commit Graph

16 Commits

Author SHA1 Message Date
Lucas Gabriel Vuotto f6bddfcd70 fold 2024-06-10 17:23:48 +00:00
Lucas Gabriel Vuotto 2b3e390bbf Make params struct non-const
Upcoming changes will push lc_*_ctx into the params struct for higher
order constructions like HMAC or HKDF.
2024-06-09 15:09:15 +00:00
Lucas Gabriel Vuotto f1c4ceea84 Make the block lengths part of the public interface 2024-06-09 14:16:18 +00:00
Lucas Gabriel Vuotto 06e9c5ec67 Rename *_CHUNK* to *_BLOCKLEN* 2024-06-09 14:05:52 +00:00
Lucas Gabriel Vuotto 9c76a90301 cipher/chacha20: rename _common to _anycrypt 2024-06-08 13:39:49 +00:00
Lucas Gabriel Vuotto 623dd16dc2 cipher: replace init args with a implementation-specific params struct
This allows for more flexibility in the future. While at it, do note
that the RFC and draft implementations are followed. In particular, in
XChaCha20, hardcode the high word of the counter to 0.

This commit breaks ChaCha20-Poly1305. It'll be fixed in a subsequent
commit.
stash
2024-06-07 18:52:46 +00:00
Lucas Gabriel Vuotto 23735c2902 cipher/chacha20: rename *_IVLEN to *_NONCELEN 2024-06-07 18:40:14 +00:00
Lucas Gabriel Vuotto 67d4de1657 Move all inout parameters to the front of the arguments list 2024-06-07 17:47:42 +00:00
Lucas Gabriel Vuotto 7b539ccdcd cipher/chacha20: logical AND is && 2024-06-07 17:34:03 +00:00
Lucas Gabriel Vuotto 0605d10bb3 Implement XChaCha20 and XChaCha20-Poly1305 2024-06-07 02:18:50 +00:00
Lucas Gabriel Vuotto 06f835e27c cipher/chacha20: treat the counter as part of the nonce 2024-06-07 00:29:25 +00:00
Lucas Gabriel Vuotto b793cb5b69 cipher/chacha20: rename chacha20_x to chacha20_common 2024-06-07 00:29:25 +00:00
Lucas Gabriel Vuotto e5215ac18e cipher/chacha20: buffer the full input block
The final implementation is simpler, at the cost of doing work in
chacha20_x_final.
2024-06-07 00:29:17 +00:00
Lucas Gabriel Vuotto f511cddf0d Fix *_ctx_new and *_ctx_free implementations
They both will only alloc and free the internal *_ctx structs. Get rid
of the void * argument for new and only pass arg to *_free instead of
the whole lc_*_ctx struct.
2024-06-06 11:45:30 +00:00
Lucas Gabriel Vuotto e9bcc64e62 Make all *_impl provide ctx_new and ctx_free functions 2024-06-05 22:05:37 +00:00
Lucas Gabriel Vuotto 7bc527c769 initial import 2024-05-31 10:59:58 +00:00