Prechádzať zdrojové kódy

keccak1600-armv4.pl: Further fix for the DigestSqueeze() support

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Hugo Landau <hlandau@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22750)
Tomas Mraz 6 mesiacov pred
rodič
commit
69d4d5282f

+ 5 - 5
crypto/sha/asm/keccak1600-armv4.pl

@@ -933,7 +933,7 @@ SHA3_absorb:
 ___
 }
 
-{ my ($out,$len,$A_flat,$bsz,$next) = map("r$_", (4,5,10,12,11));
+{ my ($out,$len,$A_flat,$bsz,$next) = map("r$_", (4,5,10,12,0));
 
 
 # void SHA3_squeeze(uint64_t A[5][5],
@@ -947,13 +947,13 @@ $code.=<<___;
 .type	SHA3_squeeze,%function
 .align	5
 SHA3_squeeze:
-	stmdb	sp!,{r0,r3-r11,lr} @ push 11 registers
+	stmdb	sp!,{r0,r3-r10,lr}
 
 	mov	$A_flat,r0
 	mov	$out,r1
 	mov	$len,r2
 	mov	$bsz,r3
-	ldr	$next, [sp, #48]  @ next is after the 11 pushed registers (12*4)
+	ldr	$next, [sp, #40]  @ next is after the 10 pushed registers (10*4)
 
 #ifdef	__thumb2__
 	mov	r9,#0x00ff00ff
@@ -1090,9 +1090,9 @@ SHA3_squeeze:
 .Lsqueeze_done:
 	add	sp,sp,#24
 #if __ARM_ARCH__>=5
-	ldmia	sp!,{r4-r11,pc}
+	ldmia	sp!,{r4-r10,pc}
 #else
-	ldmia	sp!,{r4-r11,lr}
+	ldmia	sp!,{r4-r10,lr}
 	tst	lr,#1
 	moveq	pc,lr		@ be binary compatible with V4, yet
 	bx	lr		@ interoperable with Thumb ISA:-)

+ 3 - 2
crypto/sha/build.info

@@ -169,15 +169,16 @@ GENERATE[keccak1600-s390x.S]=asm/keccak1600-s390x.pl
 GENERATE[sha1-c64xplus.S]=asm/sha1-c64xplus.pl
 GENERATE[sha256-c64xplus.S]=asm/sha256-c64xplus.pl
 GENERATE[sha512-c64xplus.S]=asm/sha512-c64xplus.pl
-GENERATE[keccak1600-c64x.S]=asm/keccak1600-c64x.pl
 
 GENERATE[sha256-riscv64-zvkb-zvknha_or_zvknhb.S]=asm/sha256-riscv64-zvkb-zvknha_or_zvknhb.pl
 GENERATE[sha512-riscv64-zvkb-zvknhb.S]=asm/sha512-riscv64-zvkb-zvknhb.pl
 
-# These are not yet used
+# These are not yet used and do not support multi-squeeze
+GENERATE[keccak1600-c64x.S]=asm/keccak1600-c64x.pl
 GENERATE[keccak1600-avx2.S]=asm/keccak1600-avx2.pl
 GENERATE[keccak1600-avx512.S]=asm/keccak1600-avx512.pl
 GENERATE[keccak1600-avx512vl.S]=asm/keccak1600-avx512vl.pl
 GENERATE[keccak1600-mmx.S]=asm/keccak1600-mmx.pl
 GENERATE[keccak1600p8-ppc.S]=asm/keccak1600p8-ppc.pl
+
 GENERATE[sha1-thumb.S]=asm/sha1-thumb.pl