From 8c84e36514fc59b9742565ef722cd15752e8d2b0 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Mon, 29 Dec 2025 23:13:17 +0100 Subject: [PATCH] Use consistent names for ipcrypt array lengths --- dist-build/emscripten-symbols.def | 8 ++-- src/libsodium/crypto_ipcrypt/crypto_ipcrypt.c | 24 +++++++--- src/libsodium/include/sodium/crypto_ipcrypt.h | 44 +++++++++++-------- test/default/ipcrypt.c | 18 ++++---- test/default/ipcrypt.exp | 8 ++-- 5 files changed, 64 insertions(+), 38 deletions(-) diff --git a/dist-build/emscripten-symbols.def b/dist-build/emscripten-symbols.def index 53400632..b46648da 100644 --- a/dist-build/emscripten-symbols.def +++ b/dist-build/emscripten-symbols.def @@ -170,21 +170,23 @@ _crypto_core_keccak1600_permute_12 0 1 _crypto_core_keccak1600_permute_24 0 1 _crypto_core_keccak1600_statebytes 0 1 _crypto_core_keccak1600_xor_bytes 0 1 +_crypto_ipcrypt_bytes 1 1 _crypto_ipcrypt_decrypt 1 1 _crypto_ipcrypt_encrypt 1 1 -_crypto_ipcrypt_inputbytes 1 1 _crypto_ipcrypt_keybytes 1 1 _crypto_ipcrypt_keygen 1 1 -_crypto_ipcrypt_nd_bytes 1 1 _crypto_ipcrypt_nd_decrypt 1 1 _crypto_ipcrypt_nd_encrypt 1 1 +_crypto_ipcrypt_nd_inputbytes 1 1 _crypto_ipcrypt_nd_keybytes 1 1 +_crypto_ipcrypt_nd_outputbytes 1 1 _crypto_ipcrypt_nd_tweakbytes 1 1 -_crypto_ipcrypt_ndx_bytes 1 1 _crypto_ipcrypt_ndx_decrypt 1 1 _crypto_ipcrypt_ndx_encrypt 1 1 +_crypto_ipcrypt_ndx_inputbytes 1 1 _crypto_ipcrypt_ndx_keybytes 1 1 _crypto_ipcrypt_ndx_keygen 1 1 +_crypto_ipcrypt_ndx_outputbytes 1 1 _crypto_ipcrypt_ndx_tweakbytes 1 1 _crypto_kem_mlkem768_ciphertextbytes 1 1 _crypto_kem_mlkem768_dec 1 1 diff --git a/src/libsodium/crypto_ipcrypt/crypto_ipcrypt.c b/src/libsodium/crypto_ipcrypt/crypto_ipcrypt.c index 5a97cec8..6c889043 100644 --- a/src/libsodium/crypto_ipcrypt/crypto_ipcrypt.c +++ b/src/libsodium/crypto_ipcrypt/crypto_ipcrypt.c @@ -21,9 +21,9 @@ static const ipcrypt_implementation *implementation = &ipcrypt_soft_implementation; size_t -crypto_ipcrypt_inputbytes(void) +crypto_ipcrypt_bytes(void) { - return crypto_ipcrypt_INPUTBYTES; + return crypto_ipcrypt_BYTES; } size_t @@ -45,9 +45,15 @@ crypto_ipcrypt_nd_tweakbytes(void) } size_t -crypto_ipcrypt_nd_bytes(void) +crypto_ipcrypt_nd_inputbytes(void) { - return crypto_ipcrypt_ND_BYTES; + return crypto_ipcrypt_ND_INPUTBYTES; +} + +size_t +crypto_ipcrypt_nd_outputbytes(void) +{ + return crypto_ipcrypt_ND_OUTPUTBYTES; } size_t @@ -63,9 +69,15 @@ crypto_ipcrypt_ndx_tweakbytes(void) } size_t -crypto_ipcrypt_ndx_bytes(void) +crypto_ipcrypt_ndx_inputbytes(void) { - return crypto_ipcrypt_NDX_BYTES; + return crypto_ipcrypt_NDX_INPUTBYTES; +} + +size_t +crypto_ipcrypt_ndx_outputbytes(void) +{ + return crypto_ipcrypt_NDX_OUTPUTBYTES; } void diff --git a/src/libsodium/include/sodium/crypto_ipcrypt.h b/src/libsodium/include/sodium/crypto_ipcrypt.h index c27ebc1b..715ba03e 100644 --- a/src/libsodium/include/sodium/crypto_ipcrypt.h +++ b/src/libsodium/include/sodium/crypto_ipcrypt.h @@ -12,9 +12,9 @@ extern "C" { #endif -#define crypto_ipcrypt_INPUTBYTES 16U +#define crypto_ipcrypt_BYTES 16U SODIUM_EXPORT -size_t crypto_ipcrypt_inputbytes(void); +size_t crypto_ipcrypt_bytes(void); #define crypto_ipcrypt_KEYBYTES 16U SODIUM_EXPORT @@ -28,9 +28,13 @@ size_t crypto_ipcrypt_nd_keybytes(void); SODIUM_EXPORT size_t crypto_ipcrypt_nd_tweakbytes(void); -#define crypto_ipcrypt_ND_BYTES 24U +#define crypto_ipcrypt_ND_INPUTBYTES 16U SODIUM_EXPORT -size_t crypto_ipcrypt_nd_bytes(void); +size_t crypto_ipcrypt_nd_inputbytes(void); + +#define crypto_ipcrypt_ND_OUTPUTBYTES 24U +SODIUM_EXPORT +size_t crypto_ipcrypt_nd_outputbytes(void); #define crypto_ipcrypt_NDX_KEYBYTES 32U SODIUM_EXPORT @@ -40,9 +44,13 @@ size_t crypto_ipcrypt_ndx_keybytes(void); SODIUM_EXPORT size_t crypto_ipcrypt_ndx_tweakbytes(void); -#define crypto_ipcrypt_NDX_BYTES 32U +#define crypto_ipcrypt_NDX_INPUTBYTES 16U SODIUM_EXPORT -size_t crypto_ipcrypt_ndx_bytes(void); +size_t crypto_ipcrypt_ndx_inputbytes(void); + +#define crypto_ipcrypt_NDX_OUTPUTBYTES 32U +SODIUM_EXPORT +size_t crypto_ipcrypt_ndx_outputbytes(void); SODIUM_EXPORT void crypto_ipcrypt_keygen(unsigned char k[crypto_ipcrypt_KEYBYTES]) __attribute__((nonnull)); @@ -52,40 +60,40 @@ void crypto_ipcrypt_ndx_keygen(unsigned char k[crypto_ipcrypt_NDX_KEYBYTES]) __attribute__((nonnull)); SODIUM_EXPORT -void crypto_ipcrypt_encrypt(unsigned char out[crypto_ipcrypt_INPUTBYTES], - const unsigned char in[crypto_ipcrypt_INPUTBYTES], +void crypto_ipcrypt_encrypt(unsigned char out[crypto_ipcrypt_BYTES], + const unsigned char in[crypto_ipcrypt_BYTES], const unsigned char k[crypto_ipcrypt_KEYBYTES]) __attribute__((nonnull)); SODIUM_EXPORT -void crypto_ipcrypt_decrypt(unsigned char out[crypto_ipcrypt_INPUTBYTES], - const unsigned char in[crypto_ipcrypt_INPUTBYTES], +void crypto_ipcrypt_decrypt(unsigned char out[crypto_ipcrypt_BYTES], + const unsigned char in[crypto_ipcrypt_BYTES], const unsigned char k[crypto_ipcrypt_KEYBYTES]) __attribute__((nonnull)); SODIUM_EXPORT -void crypto_ipcrypt_nd_encrypt(unsigned char out[crypto_ipcrypt_ND_BYTES], - const unsigned char in[crypto_ipcrypt_INPUTBYTES], +void crypto_ipcrypt_nd_encrypt(unsigned char out[crypto_ipcrypt_ND_OUTPUTBYTES], + const unsigned char in[crypto_ipcrypt_ND_INPUTBYTES], const unsigned char t[crypto_ipcrypt_ND_TWEAKBYTES], const unsigned char k[crypto_ipcrypt_ND_KEYBYTES]) __attribute__((nonnull)); SODIUM_EXPORT -void crypto_ipcrypt_nd_decrypt(unsigned char out[crypto_ipcrypt_INPUTBYTES], - const unsigned char in[crypto_ipcrypt_ND_BYTES], +void crypto_ipcrypt_nd_decrypt(unsigned char out[crypto_ipcrypt_ND_INPUTBYTES], + const unsigned char in[crypto_ipcrypt_ND_OUTPUTBYTES], const unsigned char k[crypto_ipcrypt_ND_KEYBYTES]) __attribute__((nonnull)); SODIUM_EXPORT -void crypto_ipcrypt_ndx_encrypt(unsigned char out[crypto_ipcrypt_NDX_BYTES], - const unsigned char in[crypto_ipcrypt_INPUTBYTES], +void crypto_ipcrypt_ndx_encrypt(unsigned char out[crypto_ipcrypt_NDX_OUTPUTBYTES], + const unsigned char in[crypto_ipcrypt_NDX_INPUTBYTES], const unsigned char t[crypto_ipcrypt_NDX_TWEAKBYTES], const unsigned char k[crypto_ipcrypt_NDX_KEYBYTES]) __attribute__((nonnull)); SODIUM_EXPORT -void crypto_ipcrypt_ndx_decrypt(unsigned char out[crypto_ipcrypt_INPUTBYTES], - const unsigned char in[crypto_ipcrypt_NDX_BYTES], +void crypto_ipcrypt_ndx_decrypt(unsigned char out[crypto_ipcrypt_NDX_INPUTBYTES], + const unsigned char in[crypto_ipcrypt_NDX_OUTPUTBYTES], const unsigned char k[crypto_ipcrypt_NDX_KEYBYTES]) __attribute__((nonnull)); diff --git a/test/default/ipcrypt.c b/test/default/ipcrypt.c index 376f7c40..1fd52be9 100644 --- a/test/default/ipcrypt.c +++ b/test/default/ipcrypt.c @@ -15,23 +15,25 @@ main(void) { unsigned char key[crypto_ipcrypt_KEYBYTES]; unsigned char ndx_key[crypto_ipcrypt_NDX_KEYBYTES]; - unsigned char input[crypto_ipcrypt_INPUTBYTES]; - unsigned char output[crypto_ipcrypt_INPUTBYTES]; - unsigned char nd_output[crypto_ipcrypt_ND_BYTES]; - unsigned char ndx_output[crypto_ipcrypt_NDX_BYTES]; + unsigned char input[crypto_ipcrypt_BYTES]; + unsigned char output[crypto_ipcrypt_BYTES]; + unsigned char nd_output[crypto_ipcrypt_ND_OUTPUTBYTES]; + unsigned char ndx_output[crypto_ipcrypt_NDX_OUTPUTBYTES]; unsigned char tweak_nd[crypto_ipcrypt_ND_TWEAKBYTES]; unsigned char tweak_ndx[crypto_ipcrypt_NDX_TWEAKBYTES]; - unsigned char decrypted[crypto_ipcrypt_INPUTBYTES]; + unsigned char decrypted[crypto_ipcrypt_BYTES]; size_t i; - printf("crypto_ipcrypt_INPUTBYTES: %zu\n", crypto_ipcrypt_inputbytes()); + printf("crypto_ipcrypt_BYTES: %zu\n", crypto_ipcrypt_bytes()); printf("crypto_ipcrypt_KEYBYTES: %zu\n", crypto_ipcrypt_keybytes()); printf("crypto_ipcrypt_ND_KEYBYTES: %zu\n", crypto_ipcrypt_nd_keybytes()); printf("crypto_ipcrypt_ND_TWEAKBYTES: %zu\n", crypto_ipcrypt_nd_tweakbytes()); - printf("crypto_ipcrypt_ND_BYTES: %zu\n", crypto_ipcrypt_nd_bytes()); + printf("crypto_ipcrypt_ND_INPUTBYTES: %zu\n", crypto_ipcrypt_nd_inputbytes()); + printf("crypto_ipcrypt_ND_OUTPUTBYTES: %zu\n", crypto_ipcrypt_nd_outputbytes()); printf("crypto_ipcrypt_NDX_KEYBYTES: %zu\n", crypto_ipcrypt_ndx_keybytes()); printf("crypto_ipcrypt_NDX_TWEAKBYTES: %zu\n", crypto_ipcrypt_ndx_tweakbytes()); - printf("crypto_ipcrypt_NDX_BYTES: %zu\n", crypto_ipcrypt_ndx_bytes()); + printf("crypto_ipcrypt_NDX_INPUTBYTES: %zu\n", crypto_ipcrypt_ndx_inputbytes()); + printf("crypto_ipcrypt_NDX_OUTPUTBYTES: %zu\n", crypto_ipcrypt_ndx_outputbytes()); /* Test 1: Format-preserving encryption with known key/input */ memset(key, 0x00, sizeof key); diff --git a/test/default/ipcrypt.exp b/test/default/ipcrypt.exp index 1ccd8ad6..2ddb004a 100644 --- a/test/default/ipcrypt.exp +++ b/test/default/ipcrypt.exp @@ -1,11 +1,13 @@ -crypto_ipcrypt_INPUTBYTES: 16 +crypto_ipcrypt_BYTES: 16 crypto_ipcrypt_KEYBYTES: 16 crypto_ipcrypt_ND_KEYBYTES: 16 crypto_ipcrypt_ND_TWEAKBYTES: 8 -crypto_ipcrypt_ND_BYTES: 24 +crypto_ipcrypt_ND_INPUTBYTES: 16 +crypto_ipcrypt_ND_OUTPUTBYTES: 24 crypto_ipcrypt_NDX_KEYBYTES: 32 crypto_ipcrypt_NDX_TWEAKBYTES: 16 -crypto_ipcrypt_NDX_BYTES: 32 +crypto_ipcrypt_NDX_INPUTBYTES: 16 +crypto_ipcrypt_NDX_OUTPUTBYTES: 32 Test 1: Format-preserving encryption Key: 0102030405060708090a0b0c0d0e0f10