From patchwork Fri Oct 28 12:57:22 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 16904 Received: (qmail 47659 invoked by alias); 28 Oct 2016 12:57:28 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 47643 invoked by uid 89); 28 Oct 2016 12:57:27 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.3 required=5.0 tests=BAYES_00, RP_MATCHES_RCVD, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=5.3.2, 131, 7, 1317, 1018 X-HELO: mx1.redhat.com To: GNU C Library From: Florian Weimer Subject: [PATCH] crypt: Use internal names for the SHA-2 block functions Message-ID: Date: Fri, 28 Oct 2016 14:57:22 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 I have not been able to test the SPARC bits so far, but they look reasonably safe to me. Thanks, Florian crypt: Use internal names for the SHA-2 block functions These functions are externally visible with a static libcrypt library. 2016-10-28 Florian Weimer * crypt/sha256.c, crypt/sha256-block.c, sysdeps/sparc/sparc64/multiarch/sha256-block.c: Rename sha256_process_block to __sha256_process_block. * crypt/sha512.c, crypt/sha512-block.c, sysdeps/sparc/sparc64/multiarch/sha512-block.c: Rename sha512_process_block to __sha512_process_block. diff --git a/crypt/sha256-block.c b/crypt/sha256-block.c index 8a77096..a44fe01 100644 --- a/crypt/sha256-block.c +++ b/crypt/sha256-block.c @@ -3,7 +3,7 @@ /* Process LEN bytes of BUFFER, accumulating context into CTX. It is assumed that LEN % 64 == 0. */ void -sha256_process_block (const void *buffer, size_t len, struct sha256_ctx *ctx) +__sha256_process_block (const void *buffer, size_t len, struct sha256_ctx *ctx) { const uint32_t *words = buffer; size_t nwords = len / sizeof (uint32_t); diff --git a/crypt/sha256.c b/crypt/sha256.c index e858f4b..b5497d9 100644 --- a/crypt/sha256.c +++ b/crypt/sha256.c @@ -81,8 +81,7 @@ static const uint32_t K[64] = 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 }; -void -sha256_process_block (const void *, size_t, struct sha256_ctx *); +void __sha256_process_block (const void *, size_t, struct sha256_ctx *); /* Initialize structure containing state of computation. (FIPS 180-2:5.3.2) */ @@ -131,7 +130,7 @@ __sha256_finish_ctx (struct sha256_ctx *ctx, void *resbuf) #endif /* Process last bytes. */ - sha256_process_block (ctx->buffer, bytes + pad + 8, ctx); + __sha256_process_block (ctx->buffer, bytes + pad + 8, ctx); /* Put result from CTX in first 32 bytes following RESBUF. */ for (unsigned int i = 0; i < 8; ++i) @@ -156,7 +155,7 @@ __sha256_process_bytes (const void *buffer, size_t len, struct sha256_ctx *ctx) if (ctx->buflen > 64) { - sha256_process_block (ctx->buffer, ctx->buflen & ~63, ctx); + __sha256_process_block (ctx->buffer, ctx->buflen & ~63, ctx); ctx->buflen &= 63; /* The regions in the following copy operation cannot overlap. */ @@ -182,14 +181,14 @@ __sha256_process_bytes (const void *buffer, size_t len, struct sha256_ctx *ctx) if (UNALIGNED_P (buffer)) while (len > 64) { - sha256_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx); + __sha256_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx); buffer = (const char *) buffer + 64; len -= 64; } else #endif { - sha256_process_block (buffer, len & ~63, ctx); + __sha256_process_block (buffer, len & ~63, ctx); buffer = (const char *) buffer + (len & ~63); len &= 63; } @@ -204,7 +203,7 @@ __sha256_process_bytes (const void *buffer, size_t len, struct sha256_ctx *ctx) left_over += len; if (left_over >= 64) { - sha256_process_block (ctx->buffer, 64, ctx); + __sha256_process_block (ctx->buffer, 64, ctx); left_over -= 64; memcpy (ctx->buffer, &ctx->buffer[64], left_over); } diff --git a/crypt/sha512-block.c b/crypt/sha512-block.c index c542db1..577839f 100644 --- a/crypt/sha512-block.c +++ b/crypt/sha512-block.c @@ -3,7 +3,7 @@ /* Process LEN bytes of BUFFER, accumulating context into CTX. It is assumed that LEN % 128 == 0. */ void -sha512_process_block (const void *buffer, size_t len, struct sha512_ctx *ctx) +__sha512_process_block (const void *buffer, size_t len, struct sha512_ctx *ctx) { const uint64_t *words = buffer; size_t nwords = len / sizeof (uint64_t); diff --git a/crypt/sha512.c b/crypt/sha512.c index 47f3f7c..dd2af3c 100644 --- a/crypt/sha512.c +++ b/crypt/sha512.c @@ -101,8 +101,8 @@ static const uint64_t K[80] = UINT64_C (0x5fcb6fab3ad6faec), UINT64_C (0x6c44198c4a475817) }; -void -sha512_process_block (const void *buffer, size_t len, struct sha512_ctx *ctx); +void __sha512_process_block (const void *buffer, size_t len, + struct sha512_ctx *ctx); /* Initialize structure containing state of computation. (FIPS 180-2:5.3.3) */ @@ -153,7 +153,7 @@ __sha512_finish_ctx (struct sha512_ctx *ctx, void *resbuf) (ctx->total[TOTAL128_low] >> 61)); /* Process last bytes. */ - sha512_process_block (ctx->buffer, bytes + pad + 16, ctx); + __sha512_process_block (ctx->buffer, bytes + pad + 16, ctx); /* Put result from CTX in first 64 bytes following RESBUF. */ for (unsigned int i = 0; i < 8; ++i) @@ -178,7 +178,7 @@ __sha512_process_bytes (const void *buffer, size_t len, struct sha512_ctx *ctx) if (ctx->buflen > 128) { - sha512_process_block (ctx->buffer, ctx->buflen & ~127, ctx); + __sha512_process_block (ctx->buffer, ctx->buflen & ~127, ctx); ctx->buflen &= 127; /* The regions in the following copy operation cannot overlap. */ @@ -204,7 +204,7 @@ __sha512_process_bytes (const void *buffer, size_t len, struct sha512_ctx *ctx) if (UNALIGNED_P (buffer)) while (len > 128) { - sha512_process_block (memcpy (ctx->buffer, buffer, 128), 128, + __sha512_process_block (memcpy (ctx->buffer, buffer, 128), 128, ctx); buffer = (const char *) buffer + 128; len -= 128; @@ -212,7 +212,7 @@ __sha512_process_bytes (const void *buffer, size_t len, struct sha512_ctx *ctx) else #endif { - sha512_process_block (buffer, len & ~127, ctx); + __sha512_process_block (buffer, len & ~127, ctx); buffer = (const char *) buffer + (len & ~127); len &= 127; } @@ -227,7 +227,7 @@ __sha512_process_bytes (const void *buffer, size_t len, struct sha512_ctx *ctx) left_over += len; if (left_over >= 128) { - sha512_process_block (ctx->buffer, 128, ctx); + __sha512_process_block (ctx->buffer, 128, ctx); left_over -= 128; memcpy (ctx->buffer, &ctx->buffer[128], left_over); } diff --git a/sysdeps/sparc/sparc64/multiarch/sha256-block.c b/sysdeps/sparc/sparc64/multiarch/sha256-block.c index 79966b9..aa57662 100644 --- a/sysdeps/sparc/sparc64/multiarch/sha256-block.c +++ b/sysdeps/sparc/sparc64/multiarch/sha256-block.c @@ -1,12 +1,12 @@ #include -#define sha256_process_block sha256_process_block_generic -extern void sha256_process_block_generic (const void *buffer, size_t len, - struct sha256_ctx *ctx); +#define __sha256_process_block __sha256_process_block_generic +extern void __sha256_process_block_generic (const void *buffer, size_t len, + struct sha256_ctx *ctx); #include -#undef sha256_process_block +#undef __sha256_process_block extern void __sha256_process_block_crop (const void *buffer, size_t len, struct sha256_ctx *ctx); @@ -25,6 +25,8 @@ static bool cpu_supports_sha256(int hwcap) return false; } -extern void sha256_process_block (const void *buffer, size_t len, - struct sha256_ctx *ctx); -sparc_libc_ifunc(sha256_process_block, cpu_supports_sha256(hwcap) ? __sha256_process_block_crop : sha256_process_block_generic); +extern void __sha256_process_block (const void *buffer, size_t len, + struct sha256_ctx *ctx); +sparc_libc_ifunc (__sha256_process_block, + cpu_supports_sha256(hwcap) ? __sha256_process_block_crop + : sha256_process_block_generic); diff --git a/sysdeps/sparc/sparc64/multiarch/sha512-block.c b/sysdeps/sparc/sparc64/multiarch/sha512-block.c index 0d1c3dd..2863e05 100644 --- a/sysdeps/sparc/sparc64/multiarch/sha512-block.c +++ b/sysdeps/sparc/sparc64/multiarch/sha512-block.c @@ -1,12 +1,12 @@ #include -#define sha512_process_block sha512_process_block_generic -extern void sha512_process_block_generic (const void *buffer, size_t len, - struct sha512_ctx *ctx); +#define __sha512_process_block __sha512_process_block_generic +extern void __sha512_process_block_generic (const void *buffer, size_t len, + struct sha512_ctx *ctx); #include -#undef sha512_process_block +#undef __sha512_process_block extern void __sha512_process_block_crop (const void *buffer, size_t len, struct sha512_ctx *ctx); @@ -25,6 +25,8 @@ static bool cpu_supports_sha512(int hwcap) return false; } -extern void sha512_process_block (const void *buffer, size_t len, - struct sha512_ctx *ctx); -sparc_libc_ifunc(sha512_process_block, cpu_supports_sha512(hwcap) ? __sha512_process_block_crop : sha512_process_block_generic); +extern void __sha512_process_block (const void *buffer, size_t len, + struct sha512_ctx *ctx); +sparc_libc_ifunc (__sha512_process_block, + cpu_supports_sha512(hwcap) ? __sha512_process_block_crop + : __sha512_process_block_generic);