From 2de3ee8c5940ebad54feb4303f6fc816daca784b Mon Sep 17 00:00:00 2001 From: jsing <> Date: Wed, 4 Dec 2024 13:13:33 +0000 Subject: Provide a replacement assembly implementation for SHA-1 on amd64. As already done for SHA-256 and SHA-512, replace the perlasm generated SHA-1 assembly implementation with one that is actually readable. Call the assembly implementation from a C wrapper that can, in the future, dispatch to alternate implementations. On a modern CPU the performance is around 5% faster than the base implementation generated by sha1-x86_64.pl, however it is around 15% slower than the excessively complex SSSE2/AVX version that is also generated by the same script (a SHA-NI version will greatly outperform this and is much cleaner/simpler). ok tb@ --- src/lib/libcrypto/arch/amd64/Makefile.inc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/lib/libcrypto/arch') diff --git a/src/lib/libcrypto/arch/amd64/Makefile.inc b/src/lib/libcrypto/arch/amd64/Makefile.inc index fe22385633..33c7dbba26 100644 --- a/src/lib/libcrypto/arch/amd64/Makefile.inc +++ b/src/lib/libcrypto/arch/amd64/Makefile.inc @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile.inc,v 1.33 2024/11/16 15:31:36 jsing Exp $ +# $OpenBSD: Makefile.inc,v 1.34 2024/12/04 13:13:33 jsing Exp $ # amd64-specific libcrypto build rules @@ -49,7 +49,8 @@ SSLASM+= rc4 rc4-x86_64 # ripemd # sha CFLAGS+= -DSHA1_ASM -SSLASM+= sha sha1-x86_64 +SRCS+= sha1_amd64.c +SRCS+= sha1_amd64_generic.S CFLAGS+= -DSHA256_ASM SRCS+= sha256_amd64.c SRCS+= sha256_amd64_generic.S -- cgit v1.2.3-55-g6feb