]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
Update hmac-sha512 and hmac-sha384.
authorNiels Möller <nisse@lysator.liu.se>
Wed, 30 Oct 2024 09:53:35 +0000 (10:53 +0100)
committerNiels Möller <nisse@lysator.liu.se>
Sun, 22 Jun 2025 19:11:04 +0000 (21:11 +0200)
hmac-sha384.c
hmac-sha512.c
hmac.h

index 9fbfb19f2b605b3816a681e8aeeb4bac7556f6a7..8c0b2cc559d4ead2099f0ad279c20c55eea99323 100644 (file)
@@ -2,7 +2,7 @@
 
    HMAC-SHA384 message authentication code.
 
-   Copyright (C) 2003, 2010 Niels Möller
+   Copyright (C) 2003, 2010, 2024 Niels Möller
 
    This file is part of GNU Nettle.
 
 #endif
 
 #include "hmac.h"
+#include "hmac-internal.h"
 
 void
 hmac_sha384_set_key(struct hmac_sha512_ctx *ctx,
                    size_t key_length, const uint8_t *key)
 {
-  HMAC_SET_KEY(ctx, &nettle_sha384, key_length, key);
+  _nettle_hmac_set_key (sizeof(ctx->outer), ctx->outer, ctx->inner, &ctx->state,
+                       ctx->state.block, &nettle_sha384, key_length, key);
 }
 
 void
 hmac_sha384_digest(struct hmac_sha512_ctx *ctx,
                   uint8_t *digest)
 {
-  HMAC_DIGEST(ctx, &nettle_sha384, digest);
+  sha384_digest (&ctx->state, ctx->state.block);
+  ctx->state.index = SHA384_DIGEST_SIZE;
+  _NETTLE_HMAC_DIGEST (ctx->outer, ctx->inner, &ctx->state, sha384_digest, digest);
 }
index e7a43e7d9ec1424068440366564d7335c8108614..59b157211f92bf9abca78bbdbcc9eb3be1ebeab2 100644 (file)
@@ -2,7 +2,7 @@
 
    HMAC-SHA512 message authentication code.
 
-   Copyright (C) 2003, 2010 Niels Möller
+   Copyright (C) 2003, 2010, 2024 Niels Möller
 
    This file is part of GNU Nettle.
 
 #endif
 
 #include "hmac.h"
+#include "hmac-internal.h"
 
 void
 hmac_sha512_set_key(struct hmac_sha512_ctx *ctx,
                    size_t key_length, const uint8_t *key)
 {
-  HMAC_SET_KEY(ctx, &nettle_sha512, key_length, key);
+  _nettle_hmac_set_key (sizeof(ctx->outer), ctx->outer, ctx->inner, &ctx->state,
+                       ctx->state.block, &nettle_sha512, key_length, key);
 }
 
 void
@@ -55,5 +57,7 @@ void
 hmac_sha512_digest(struct hmac_sha512_ctx *ctx,
                   uint8_t *digest)
 {
-  HMAC_DIGEST(ctx, &nettle_sha512, digest);
+  sha512_digest (&ctx->state, ctx->state.block);
+  ctx->state.index = SHA512_DIGEST_SIZE;
+  _NETTLE_HMAC_DIGEST (ctx->outer, ctx->inner, &ctx->state, sha512_digest, digest);
 }
diff --git a/hmac.h b/hmac.h
index e3d3057894804b5d1d93688bcd739b452fe0848e..6ffe501d68d48340601e2c7c7e8fa48eacec4474 100644 (file)
--- a/hmac.h
+++ b/hmac.h
@@ -196,7 +196,7 @@ hmac_sha224_digest(struct hmac_sha224_ctx *ctx,
                   uint8_t *digest);
 
 /* hmac-sha512 */
-struct hmac_sha512_ctx OLD_HMAC_CTX(struct sha512_ctx);
+struct hmac_sha512_ctx HMAC_CTX (struct sha512_ctx, offsetof (struct sha512_ctx, index));
 
 void
 hmac_sha512_set_key(struct hmac_sha512_ctx *ctx,