Browse Source

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.
OPENBSD_5_8
miod 9 years ago
parent
commit
7c59126aa4
1 changed files with 1 additions and 5 deletions
  1. +1
    -5
      src/lib/libcrypto/crypto/arch/hppa/Makefile.inc

+ 1
- 5
src/lib/libcrypto/crypto/arch/hppa/Makefile.inc View File

@ -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 # hppa-specific libcrypto build rules
@ -30,12 +30,8 @@ SRCS+= rc4_enc.c rc4_skey.c
# sha # sha
CFLAGS+= -DSHA1_ASM CFLAGS+= -DSHA1_ASM
SSLASM+= sha sha1-parisc sha1-parisc SSLASM+= sha sha1-parisc sha1-parisc
.if 0 # sha512 subtly broken, sha256 probably as well
CFLAGS+= -DSHA256_ASM CFLAGS+= -DSHA256_ASM
SSLASM+= sha sha512-parisc sha256-parisc SSLASM+= sha sha512-parisc sha256-parisc
CFLAGS+= -DSHA512_ASM
SSLASM+= sha sha512-parisc sha512-parisc
.endif
# whrlpool # whrlpool
SRCS+= wp_block.c SRCS+= wp_block.c


Loading…
Cancel
Save