diff options
author | Niels Möller <nisse@lysator.liu.se> | 2023-02-07 20:04:03 +0100 |
---|---|---|
committer | Niels Möller <nisse@lysator.liu.se> | 2023-02-07 20:34:38 +0100 |
commit | 9cf0e2d2675268a403194d85a78a44e8cbdf562b (patch) | |
tree | b27e147fe172aaba9f1c1ad1aadada10dc27393b /ChangeLog | |
parent | eb48e209db6fb6d6ce0005de88ba362b6fcbe933 (diff) | |
download | nettle-9cf0e2d2675268a403194d85a78a44e8cbdf562b.tar.gz |
Implement OCB mode, RFC 7253.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 36 |
1 files changed, 36 insertions, 0 deletions
@@ -1,3 +1,39 @@ +2023-02-07 Niels Möller <nisse@lysator.liu.se> + + Implement OCB mode. RFC 7253. + * block-internal.h (block16_set): New function. + + * ocb.c (ocb_set_key, ocb_set_nonce, ocb_update, ocb_encrypt) + (ocb_decrypt, ocb_encrypt_message, ocb_decrypt_message): New + public functions. + (MEM_ROTATE_RIGHT, MEM_MASK): New macros. + (extract, update_offset, pad_block, ocb_fill_n, ocb_crypt_n) + (ocb_checksum_n): New helper functions. + * ocb-aes128.c (ocb_aes128_set_encrypt_key) + (ocb_aes128_set_decrypt_key, ocb_aes128_set_nonce) + (ocb_aes128_update, ocb_aes128_encrypt, ocb_aes128_decrypt) + (ocb_aes128_digest, ocb_aes128_encrypt_message) + (ocb_aes128_decrypt_message): New file, new functions. + * ocb.h: Declare ocb functions. + (struct ocb_key): New struct. + (struct ocb_ctx): New struct. + (struct ocb_aes128_encrypt_key): New struct. + * Makefile.in (nettle_SOURCES): Add ocb.c ocb-aes128.c. + (HEADERS): Add ocb.h. + + * nettle-internal.c (nettle_ocb_aes128) + (ocb_aes128_set_encrypt_key_wrapper) + (ocb_aes128_set_decrypt_key_wrapper) + (ocb_aes128_set_nonce_wrapper, ocb_aes128_update_wrapper) + (ocb_aes128_encrypt_wrapper, ocb_aes128_decrypt_wrapper) + (ocb_aes128_digest_wrapper): New aead algorithm, and + related wrapper functions. + * nettle-internal.h (OCB_NONCE_SIZE): New constant. + (struct ocb_aes128_ctx): New struct. + + * testsuite/ocb-test.c: New tests. + * testsuite/Makefile.in (TS_NETTLE_SOURCES): Add ocb-test.c. + 2023-02-06 Niels Möller <nisse@lysator.liu.se> * testsuite/testutils.c (test_aead): Always use set_nonce function |