From bfe1061b3861d67993d387c441e99d46fafa015d Mon Sep 17 00:00:00 2001 From: tb Date: Tue, 11 Apr 2023 15:38:55 +0000 Subject: [PATCH] Recommit jsing's r1.27 - portable is ready Use htobe64() instead of testing BYTE_ORDER and then handrolling htobe64(). Thanks to tobhe for providing most of the fix via openiked-portable --- lib/libcrypto/sha/sha512.c | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/lib/libcrypto/sha/sha512.c b/lib/libcrypto/sha/sha512.c index d923a8e2afb..a518c039ea2 100644 --- a/lib/libcrypto/sha/sha512.c +++ b/lib/libcrypto/sha/sha512.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sha512.c,v 1.29 2023/04/11 13:03:03 tb Exp $ */ +/* $OpenBSD: sha512.c,v 1.30 2023/04/11 15:38:55 tb Exp $ */ /* ==================================================================== * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. * @@ -546,28 +546,9 @@ SHA512_Final(unsigned char *md, SHA512_CTX *c) sha512_block_data_order(c, p, 1); } - memset (p + n, 0, sizeof(c->u) - 16 - n); -#if BYTE_ORDER == BIG_ENDIAN - c->u.d[SHA_LBLOCK - 2] = c->Nh; - c->u.d[SHA_LBLOCK - 1] = c->Nl; -#else - p[sizeof(c->u) - 1] = (unsigned char)(c->Nl); - p[sizeof(c->u) - 2] = (unsigned char)(c->Nl >> 8); - p[sizeof(c->u) - 3] = (unsigned char)(c->Nl >> 16); - p[sizeof(c->u) - 4] = (unsigned char)(c->Nl >> 24); - p[sizeof(c->u) - 5] = (unsigned char)(c->Nl >> 32); - p[sizeof(c->u) - 6] = (unsigned char)(c->Nl >> 40); - p[sizeof(c->u) - 7] = (unsigned char)(c->Nl >> 48); - p[sizeof(c->u) - 8] = (unsigned char)(c->Nl >> 56); - p[sizeof(c->u) - 9] = (unsigned char)(c->Nh); - p[sizeof(c->u) - 10] = (unsigned char)(c->Nh >> 8); - p[sizeof(c->u) - 11] = (unsigned char)(c->Nh >> 16); - p[sizeof(c->u) - 12] = (unsigned char)(c->Nh >> 24); - p[sizeof(c->u) - 13] = (unsigned char)(c->Nh >> 32); - p[sizeof(c->u) - 14] = (unsigned char)(c->Nh >> 40); - p[sizeof(c->u) - 15] = (unsigned char)(c->Nh >> 48); - p[sizeof(c->u) - 16] = (unsigned char)(c->Nh >> 56); -#endif + memset(p + n, 0, sizeof(c->u) - 16 - n); + c->u.d[SHA_LBLOCK - 2] = htobe64(c->Nh); + c->u.d[SHA_LBLOCK - 1] = htobe64(c->Nl); sha512_block_data_order(c, p, 1); -- 2.20.1