From 5018b21486fe3d91084c0d32a86d1240d832e25e Mon Sep 17 00:00:00 2001 From: miod <> Date: Wed, 18 Mar 2015 05:26:10 +0000 Subject: In the neverending saga of enabling and disabling assembler code for sha routines on hppa, the cause for sha512-parisc subtly misbehaving has been found: despite having fallback pa1.1 code when running on a 32-bit cpu, the shift constants used in the sigma computations in sha512 are >= 32 and are silently truncated to 5 bits by the assembler, so there is no chance of getting this code to work on a non-pa2.0 processor. However, the pa1.1 fallback code for sha256 is safe, as it never attempts to shift by more than 31, so reenable it again. --- src/lib/libcrypto/arch/hppa/Makefile.inc | 6 +----- src/lib/libcrypto/crypto/arch/hppa/Makefile.inc | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/src/lib/libcrypto/arch/hppa/Makefile.inc b/src/lib/libcrypto/arch/hppa/Makefile.inc index d8ca1065d6..0e18de2074 100644 --- a/src/lib/libcrypto/arch/hppa/Makefile.inc +++ b/src/lib/libcrypto/arch/hppa/Makefile.inc @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile.inc,v 1.8 2015/03/05 20:35:28 miod Exp $ +# $OpenBSD: Makefile.inc,v 1.9 2015/03/18 05:26:10 miod Exp $ # hppa-specific libcrypto build rules @@ -30,12 +30,8 @@ SRCS+= rc4_enc.c rc4_skey.c # sha CFLAGS+= -DSHA1_ASM SSLASM+= sha sha1-parisc sha1-parisc -.if 0 # sha512 subtly broken, sha256 probably as well CFLAGS+= -DSHA256_ASM SSLASM+= sha sha512-parisc sha256-parisc -CFLAGS+= -DSHA512_ASM -SSLASM+= sha sha512-parisc sha512-parisc -.endif # whrlpool SRCS+= wp_block.c diff --git a/src/lib/libcrypto/crypto/arch/hppa/Makefile.inc b/src/lib/libcrypto/crypto/arch/hppa/Makefile.inc index d8ca1065d6..0e18de2074 100644 --- a/src/lib/libcrypto/crypto/arch/hppa/Makefile.inc +++ b/src/lib/libcrypto/crypto/arch/hppa/Makefile.inc @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile.inc,v 1.8 2015/03/05 20:35:28 miod Exp $ +# $OpenBSD: Makefile.inc,v 1.9 2015/03/18 05:26:10 miod Exp $ # hppa-specific libcrypto build rules @@ -30,12 +30,8 @@ SRCS+= rc4_enc.c rc4_skey.c # sha CFLAGS+= -DSHA1_ASM SSLASM+= sha sha1-parisc sha1-parisc -.if 0 # sha512 subtly broken, sha256 probably as well CFLAGS+= -DSHA256_ASM SSLASM+= sha sha512-parisc sha256-parisc -CFLAGS+= -DSHA512_ASM -SSLASM+= sha sha512-parisc sha512-parisc -.endif # whrlpool SRCS+= wp_block.c -- cgit v1.2.3-55-g6feb