blake2b_init_param are already defined there and it causes a little headache to workaround. I propose the following fix to the said issue, I didn't test it (yet!), but it shouldn't change anything in terms of functionality
From b95535acbb18895a9d9894e64815cfca460ab95c Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto <cyjan@mrcyjanek.net> Date: Thu, 25 Apr 2024 09:37:37 +0200 Subject: [PATCH] fix duplicate symbol error --- src/argon2/blake2/blake2.h | 12 +++++----- src/argon2/blake2/blake2b.c | 46 ++++++++++++++++++------------------- src/argon2/core.c | 32 +++++++++++++------------- 3 files changed, 45 insertions(+), 45 deletions(-) diff --git a/src/argon2/blake2/blake2.h b/src/argon2/blake2/blake2.h index 9f97e1c..25b445d 100644 --- a/src/argon2/blake2/blake2.h +++ b/src/argon2/blake2/blake2.h @@ -67,15 +67,15 @@ enum { }; /* Streaming API */ -ARGON2_LOCAL int blake2b_init(blake2b_state *S, size_t outlen); -ARGON2_LOCAL int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key, +ARGON2_LOCAL int blake2b_init_wowseed(blake2b_state *S, size_t outlen); +ARGON2_LOCAL int blake2b_init_key_wowseed(blake2b_state *S, size_t outlen, const void *key, size_t keylen); -ARGON2_LOCAL int blake2b_init_param(blake2b_state *S, const blake2b_param *P); -ARGON2_LOCAL int blake2b_update(blake2b_state *S, const void *in, size_t inlen); -ARGON2_LOCAL int blake2b_final(blake2b_state *S, void *out, size_t outlen); +ARGON2_LOCAL int blake2b_init_param_wowseed(blake2b_state *S, const blake2b_param *P); +ARGON2_LOCAL int blake2b_update_wowseed(blake2b_state *S, const void *in, size_t inlen); +ARGON2_LOCAL int blake2b_final_wowseed(blake2b_state *S, void *out, size_t outlen); /* Simple API */ -ARGON2_LOCAL int blake2b(void *out, size_t outlen, const void *in, size_t inlen, +ARGON2_LOCAL int blake2b_wowseed(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen); /* Argon2 Team - Begin Code */ diff --git a/src/argon2/blake2/blake2b.c b/src/argon2/blake2/blake2b.c index ca05df5..8138b86 100644 --- a/src/argon2/blake2/blake2b.c +++ b/src/argon2/blake2/blake2b.c @@ -70,7 +70,7 @@ static BLAKE2_INLINE void blake2b_init0(blake2b_state *S) { memcpy(S->h, blake2b_IV, sizeof(S->h)); } -int blake2b_init_param(blake2b_state *S, const blake2b_param *P) { +int blake2b_init_param_wowseed(blake2b_state *S, const blake2b_param *P) { const unsigned char *p = (const unsigned char *)P; unsigned int i; @@ -88,7 +88,7 @@ int blake2b_init_param(blake2b_state *S, const blake2b_param *P) { } /* Sequential blake2b initialization */ -int blake2b_init(blake2b_state *S, size_t outlen) { +int blake2b_init_wowseed(blake2b_state *S, size_t outlen) { blake2b_param P; if (S == NULL) { @@ -113,10 +113,10 @@ int blake2b_init(blake2b_state *S, size_t outlen) { memset(P.salt, 0, sizeof(P.salt)); memset(P.personal, 0, sizeof(P.personal)); - return blake2b_init_param(S, &P); + return blake2b_init_param_wowseed(S, &P); } -int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key, +int blake2b_init_key_wowseed(blake2b_state *S, size_t outlen, const void *key, size_t keylen) { blake2b_param P; @@ -147,7 +147,7 @@ int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key, memset(P.salt, 0, sizeof(P.salt)); memset(P.personal, 0, sizeof(P.personal)); - if (blake2b_init_param(S, &P) < 0) { + if (blake2b_init_param_wowseed(S, &P) < 0) { blake2b_invalidate_state(S); return -1; } @@ -156,7 +156,7 @@ int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key, uint8_t block[BLAKE2B_BLOCKBYTES]; memset(block, 0, BLAKE2B_BLOCKBYTES); memcpy(block, key, keylen); - blake2b_update(S, block, BLAKE2B_BLOCKBYTES); + blake2b_update_wowseed(S, block, BLAKE2B_BLOCKBYTES); /* Burn the key from stack */ clear_internal_memory(block, BLAKE2B_BLOCKBYTES); } @@ -221,7 +221,7 @@ static void blake2b_compress(blake2b_state *S, const uint8_t *block) { #undef ROUND } -int blake2b_update(blake2b_state *S, const void *in, size_t inlen) { +int blake2b_update_wowseed(blake2b_state *S, const void *in, size_t inlen) { const uint8_t *pin = (const uint8_t *)in; if (inlen == 0) { @@ -261,7 +261,7 @@ int blake2b_update(blake2b_state *S, const void *in, size_t inlen) { return 0; } -int blake2b_final(blake2b_state *S, void *out, size_t outlen) { +int blake2b_final_wowseed(blake2b_state *S, void *out, size_t outlen) { uint8_t buffer[BLAKE2B_OUTBYTES] = {0}; unsigned int i; @@ -291,7 +291,7 @@ int blake2b_final(blake2b_state *S, void *out, size_t outlen) { return 0; } -int blake2b(void *out, size_t outlen, const void *in, size_t inlen, +int blake2b_wowseed(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen) { blake2b_state S; int ret = -1; @@ -310,19 +310,19 @@ int blake2b(void *out, size_t outlen, const void *in, size_t inlen, } if (keylen > 0) { - if (blake2b_init_key(&S, outlen, key, keylen) < 0) { + if (blake2b_init_key_wowseed(&S, outlen, key, keylen) < 0) { goto fail; } } else { - if (blake2b_init(&S, outlen) < 0) { + if (blake2b_init_wowseed(&S, outlen) < 0) { goto fail; } } - if (blake2b_update(&S, in, inlen) < 0) { + if (blake2b_update_wowseed(&S, in, inlen) < 0) { goto fail; } - ret = blake2b_final(&S, out, outlen); + ret = blake2b_final_wowseed(&S, out, outlen); fail: clear_internal_memory(&S, sizeof(S)); @@ -352,25 +352,25 @@ int blake2b_long(void *pout, size_t outlen, const void *in, size_t inlen) { } while ((void)0, 0) if (outlen <= BLAKE2B_OUTBYTES) { - TRY(blake2b_init(&blake_state, outlen)); - TRY(blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes))); - TRY(blake2b_update(&blake_state, in, inlen)); - TRY(blake2b_final(&blake_state, out, outlen)); + TRY(blake2b_init_wowseed(&blake_state, outlen)); + TRY(blake2b_update_wowseed(&blake_state, outlen_bytes, sizeof(outlen_bytes))); + TRY(blake2b_update_wowseed(&blake_state, in, inlen)); + TRY(blake2b_final_wowseed(&blake_state, out, outlen)); } else { uint32_t toproduce; uint8_t out_buffer[BLAKE2B_OUTBYTES]; uint8_t in_buffer[BLAKE2B_OUTBYTES]; - TRY(blake2b_init(&blake_state, BLAKE2B_OUTBYTES)); - TRY(blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes))); - TRY(blake2b_update(&blake_state, in, inlen)); - TRY(blake2b_final(&blake_state, out_buffer, BLAKE2B_OUTBYTES)); + TRY(blake2b_init_wowseed(&blake_state, BLAKE2B_OUTBYTES)); + TRY(blake2b_update_wowseed(&blake_state, outlen_bytes, sizeof(outlen_bytes))); + TRY(blake2b_update_wowseed(&blake_state, in, inlen)); + TRY(blake2b_final_wowseed(&blake_state, out_buffer, BLAKE2B_OUTBYTES)); memcpy(out, out_buffer, BLAKE2B_OUTBYTES / 2); out += BLAKE2B_OUTBYTES / 2; toproduce = (uint32_t)outlen - BLAKE2B_OUTBYTES / 2; while (toproduce > BLAKE2B_OUTBYTES) { memcpy(in_buffer, out_buffer, BLAKE2B_OUTBYTES); - TRY(blake2b(out_buffer, BLAKE2B_OUTBYTES, in_buffer, + TRY(blake2b_wowseed(out_buffer, BLAKE2B_OUTBYTES, in_buffer, BLAKE2B_OUTBYTES, NULL, 0)); memcpy(out, out_buffer, BLAKE2B_OUTBYTES / 2); out += BLAKE2B_OUTBYTES / 2; @@ -378,7 +378,7 @@ int blake2b_long(void *pout, size_t outlen, const void *in, size_t inlen) { } memcpy(in_buffer, out_buffer, BLAKE2B_OUTBYTES); - TRY(blake2b(out_buffer, toproduce, in_buffer, BLAKE2B_OUTBYTES, NULL, + TRY(blake2b_wowseed(out_buffer, toproduce, in_buffer, BLAKE2B_OUTBYTES, NULL, 0)); memcpy(out, out_buffer, toproduce); } diff --git a/src/argon2/core.c b/src/argon2/core.c index 5eafe08..f59db34 100644 --- a/src/argon2/core.c +++ b/src/argon2/core.c @@ -439,31 +439,31 @@ void initial_hash(uint8_t *blockhash, argon2_context *context, return; } - blake2b_init(&BlakeHash, ARGON2_PREHASH_DIGEST_LENGTH); + blake2b_init_wowseed(&BlakeHash, ARGON2_PREHASH_DIGEST_LENGTH); store32(&value, context->lanes); - blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); store32(&value, context->outlen); - blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); store32(&value, context->m_cost); - blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); store32(&value, context->t_cost); - blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); store32(&value, context->version); - blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); store32(&value, (uint32_t)type); - blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); store32(&value, context->pwdlen); - blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); if (context->pwd != NULL) { - blake2b_update(&BlakeHash, (const uint8_t *)context->pwd, + blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->pwd, context->pwdlen); if (context->flags & ARGON2_FLAG_CLEAR_PASSWORD) { @@ -473,18 +473,18 @@ void initial_hash(uint8_t *blockhash, argon2_context *context, } store32(&value, context->saltlen); - blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); if (context->salt != NULL) { - blake2b_update(&BlakeHash, (const uint8_t *)context->salt, + blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->salt, context->saltlen); } store32(&value, context->secretlen); - blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); if (context->secret != NULL) { - blake2b_update(&BlakeHash, (const uint8_t *)context->secret, + blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->secret, context->secretlen); if (context->flags & ARGON2_FLAG_CLEAR_SECRET) { @@ -494,14 +494,14 @@ void initial_hash(uint8_t *blockhash, argon2_context *context, } store32(&value, context->adlen); - blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); if (context->ad != NULL) { - blake2b_update(&BlakeHash, (const uint8_t *)context->ad, + blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->ad, context->adlen); } - blake2b_final(&BlakeHash, blockhash, ARGON2_PREHASH_DIGEST_LENGTH); + blake2b_final_wowseed(&BlakeHash, blockhash, ARGON2_PREHASH_DIGEST_LENGTH); } int initialize(argon2_instance_t *instance, argon2_context *context) { -- 2.44.0
thanks :)
Maybe submit a PR?
will do once testing is done, currently just sharing an idea :p I wouldn't like to break the code
No due date set.
No dependencies set.
Deleting a branch is permanent. It CANNOT be undone. Continue?
blake2b_init_param are already defined there and it causes a little headache to workaround. I propose the following fix to the said issue, I didn't test it (yet!), but it shouldn't change anything in terms of functionality
thanks :)
Maybe submit a PR?
will do once testing is done, currently just sharing an idea :p I wouldn't like to break the code