[PATCH 9/9] drop weakness of SHA384 symbols
Michael Haubenwallner
michael.haubenwallner at ssi-schaefer.com
Mon Apr 10 11:10:46 UTC 2017
There is no reason for SHA384Transform/Update/Pad to be less strong than
their SHA512 implementations. Beyond that, defining weak symbols is
hard to keep portable.
---
src/md2.c | 7 -------
src/sha2.c | 24 +++++++++++++++++-------
2 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/src/md2.c b/src/md2.c
index 73f3160..7b4b009 100644
--- a/src/md2.c
+++ b/src/md2.c
@@ -101,13 +101,6 @@ static const unsigned char *pad[] = {
*/
/*static*/ void MD2Transform (MD2_CTX *);
-#ifdef __weak_alias
-__weak_alias(MD2Init,_MD2Init)
-__weak_alias(MD2Update,_MD2Update)
-__weak_alias(MD2Final,_MD2Final)
-__weak_alias(MD2Transform,_MD2Transform)
-#endif
-
void
MD2Init(MD2_CTX *context)
{
diff --git a/src/sha2.c b/src/sha2.c
index e048e5a..fb753b7 100644
--- a/src/sha2.c
+++ b/src/sha2.c
@@ -45,10 +45,6 @@
#define _C_LABEL_STRING(x) x
-#define __weak_alias(alias,sym) \
- __asm(".weak " _C_LABEL_STRING(#alias) "\n" \
- _C_LABEL_STRING(#alias) " = " _C_LABEL_STRING(#sym));
-
/*
* UNROLLED TRANSFORM LOOP NOTE:
* You can define SHA2_UNROLL_TRANSFORM to use the unrolled transform
@@ -822,9 +818,23 @@ SHA384Init(SHA2_CTX *context)
context->bitcount[0] = context->bitcount[1] = 0;
}
-__weak_alias(SHA384Transform, SHA512Transform);
-__weak_alias(SHA384Update, SHA512Update);
-__weak_alias(SHA384Pad, SHA512Pad);
+void
+SHA384Transform(uint64_t state[8], const uint8_t data[SHA512_BLOCK_LENGTH])
+{
+ SHA512Transform(state, data);
+}
+
+void
+SHA384Update(SHA2_CTX *context, const uint8_t *data, size_t len)
+{
+ SHA512Update(context, data, len);
+}
+
+void
+SHA384Pad(SHA2_CTX *context)
+{
+ SHA512Pad(context);
+}
void
SHA384Final(uint8_t digest[SHA384_DIGEST_LENGTH], SHA2_CTX *context)
--
2.10.2
More information about the libbsd
mailing list