From 5db61c617b60cffc65374bdac21f425f9482f1e9 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Fri, 23 Jan 2015 23:08:49 +0100 Subject: [PATCH] Add statebytes for crypto_hmac_* --- src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256_api.c | 5 +++++ src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512_api.c | 5 +++++ .../crypto_auth/hmacsha512256/auth_hmacsha512256_api.c | 5 +++++ src/libsodium/include/sodium/crypto_auth_hmacsha256.h | 2 ++ src/libsodium/include/sodium/crypto_auth_hmacsha512.h | 2 ++ src/libsodium/include/sodium/crypto_auth_hmacsha512256.h | 4 +++- test/default/auth.c | 6 ++++++ 7 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256_api.c b/src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256_api.c index 5af3388a..9b8353f5 100644 --- a/src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256_api.c +++ b/src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256_api.c @@ -9,3 +9,8 @@ size_t crypto_auth_hmacsha256_keybytes(void) { return crypto_auth_hmacsha256_KEYBYTES; } + +size_t +crypto_auth_hmacsha256_statebytes(void) { + return sizeof(crypto_auth_hmacsha256_state); +} diff --git a/src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512_api.c b/src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512_api.c index 54584e14..49b8c2d6 100644 --- a/src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512_api.c +++ b/src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512_api.c @@ -9,3 +9,8 @@ size_t crypto_auth_hmacsha512_keybytes(void) { return crypto_auth_hmacsha512_KEYBYTES; } + +size_t +crypto_auth_hmacsha512_statebytes(void) { + return sizeof(crypto_auth_hmacsha512_state); +} diff --git a/src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256_api.c b/src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256_api.c index fd0fe9c5..9405bbbb 100644 --- a/src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256_api.c +++ b/src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256_api.c @@ -9,3 +9,8 @@ size_t crypto_auth_hmacsha512256_keybytes(void) { return crypto_auth_hmacsha512256_KEYBYTES; } + +size_t +crypto_auth_hmacsha512256_statebytes(void) { + return sizeof(crypto_auth_hmacsha512256_state); +} diff --git a/src/libsodium/include/sodium/crypto_auth_hmacsha256.h b/src/libsodium/include/sodium/crypto_auth_hmacsha256.h index 6869b56f..87471634 100644 --- a/src/libsodium/include/sodium/crypto_auth_hmacsha256.h +++ b/src/libsodium/include/sodium/crypto_auth_hmacsha256.h @@ -16,6 +16,8 @@ typedef struct crypto_auth_hmacsha256_state { crypto_hash_sha256_state ictx; crypto_hash_sha256_state octx; } crypto_auth_hmacsha256_state; +SODIUM_EXPORT +size_t crypto_auth_hmacsha256_statebytes(void); #define crypto_auth_hmacsha256_BYTES 32U SODIUM_EXPORT diff --git a/src/libsodium/include/sodium/crypto_auth_hmacsha512.h b/src/libsodium/include/sodium/crypto_auth_hmacsha512.h index 7df1f135..f67261c7 100644 --- a/src/libsodium/include/sodium/crypto_auth_hmacsha512.h +++ b/src/libsodium/include/sodium/crypto_auth_hmacsha512.h @@ -16,6 +16,8 @@ typedef struct crypto_auth_hmacsha512_state { crypto_hash_sha512_state ictx; crypto_hash_sha512_state octx; } crypto_auth_hmacsha512_state; +SODIUM_EXPORT +size_t crypto_auth_hmacsha512_statebytes(void); #define crypto_auth_hmacsha512_BYTES 64U SODIUM_EXPORT diff --git a/src/libsodium/include/sodium/crypto_auth_hmacsha512256.h b/src/libsodium/include/sodium/crypto_auth_hmacsha512256.h index d0064c8d..729bcdde 100644 --- a/src/libsodium/include/sodium/crypto_auth_hmacsha512256.h +++ b/src/libsodium/include/sodium/crypto_auth_hmacsha512256.h @@ -12,7 +12,9 @@ extern "C" { #endif -typedef struct crypto_auth_hmacsha512_state crypto_auth_hmacsha512256_state; +typedef crypto_auth_hmacsha512_state crypto_auth_hmacsha512256_state; +SODIUM_EXPORT +size_t crypto_auth_hmacsha512256_statebytes(void); #define crypto_auth_hmacsha512256_BYTES 32U SODIUM_EXPORT diff --git a/test/default/auth.c b/test/default/auth.c index 913ada4b..1773a14d 100644 --- a/test/default/auth.c +++ b/test/default/auth.c @@ -17,6 +17,8 @@ int main(void) crypto_auth_hmacsha512_state st; int i; + assert(crypto_auth_hmacsha512_statebytes() == + sizeof(crypto_auth_hmacsha512_state)); crypto_auth(a, c, sizeof c - 1U, key); for (i = 0; i < sizeof a; ++i) { printf(",0x%02x", (unsigned int)a[i]); @@ -55,6 +57,10 @@ int main(void) assert(crypto_auth_hmacsha512_keybytes() > 0U); assert(crypto_auth_hmacsha512256_bytes() == crypto_auth_bytes()); assert(crypto_auth_hmacsha512256_keybytes() == crypto_auth_keybytes()); + assert(crypto_auth_hmacsha256_statebytes() == + sizeof(crypto_auth_hmacsha256_state)); + assert(crypto_auth_hmacsha512_statebytes() == + sizeof(crypto_auth_hmacsha512_state)); return 0; }