CVS commit: src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64
Module Name:src Committed By: christos Date: Sun Dec 9 21:39:48 UTC 2018 Modified Files: src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64: aes.inc Log Message: add new file (Robert Swindells) To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aes.inc Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aes.inc diff -u src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aes.inc:1.2 src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aes.inc:1.3 --- src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aes.inc:1.2 Wed Mar 7 11:05:44 2018 +++ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aes.inc Sun Dec 9 16:39:48 2018 @@ -1,4 +1,6 @@ .PATH.S: ${.PARSEDIR} -#AES_SRCS = aesv8-armx.S aes_cbc.c -#AESCPPFLAGS = -DAES_ASM +#AES_SRCS = aesv8-armx.S aes_cbc.c vpaes-armv8.S +#AESCPPFLAGS = -DAES_ASM -DVPAES_ASM +AES_SRCS = aes_core.c aes_cbc.c vpaes-armv8.S +AESCPPFLAGS = -DVPAES_ASM .include "../../aes.inc"
CVS commit: src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64
Module Name:src Committed By: christos Date: Mon Jul 16 00:08:12 UTC 2018 Modified Files: src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64: crypto.inc Log Message: select assembler based on ACTIVE_CC To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/crypto.inc Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/crypto.inc diff -u src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/crypto.inc:1.2 src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/crypto.inc:1.3 --- src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/crypto.inc:1.2 Wed Mar 7 11:05:44 2018 +++ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/crypto.inc Sun Jul 15 20:08:12 2018 @@ -3,6 +3,6 @@ CPUID_SRCS += arm64cpuid.S armcap.c CPUID = yes ARM_MAX_ARCH=8 CPPFLAGS += -D__ARM_MAX_ARCH__=${ARM_MAX_ARCH} -CFLAGS+= -no-integrated-as +CFLAGS+= ${${ACTIVE_CC} == "clang" :? -no-integrated-as :} .include "../../crypto.inc"
CVS commit: src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64
Module Name:src Committed By: christos Date: Wed Mar 7 16:05:44 UTC 2018 Modified Files: src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64: Makefile aes.inc aesv8-armx.S bf.inc bn.inc crypto.inc des.inc ghashv8-armx.S modes.inc rc4.inc sha.inc sha1-armv8.S Added Files: src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64: arm64cpuid.S armv8-mont.S chacha-armv8.S chacha.inc ec.inc ecp_nistz256-armv8.S poly1305-armv8.S poly1305.inc sha512-armv8.S vpaes-armv8.S Log Message: regen; some assembly files don't work so disable for now. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/Makefile \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aes.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aesv8-armx.S \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/bf.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/bn.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/crypto.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/des.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/ghashv8-armx.S \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/modes.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/rc4.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/sha.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/sha1-armv8.S cvs rdiff -u -r0 -r1.1 \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/arm64cpuid.S \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/armv8-mont.S \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/chacha-armv8.S \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/chacha.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/ec.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/ecp_nistz256-armv8.S \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/poly1305-armv8.S \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/poly1305.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/sha512-armv8.S \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/vpaes-armv8.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. diffs are larger than 1MB and have been omitted
CVS commit: src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64
Module Name:src Committed By: joerg Date: Mon Oct 17 00:24:13 UTC 2016 Added Files: src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64: Makefile aes.inc aesv8-armx.S bf.inc bn.inc crypto.inc des.inc ghashv8-armx.S modes.inc rc4.inc sha.inc sha1-armv8.S Log Message: Add basic glue for AArch64, including not-yet-used assembler files. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/Makefile \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aes.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aesv8-armx.S \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/bf.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/bn.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/crypto.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/des.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/ghashv8-armx.S \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/modes.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/rc4.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/sha.inc \ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/sha1-armv8.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Added files: Index: src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/Makefile diff -u /dev/null src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/Makefile:1.1 --- /dev/null Mon Oct 17 00:24:13 2016 +++ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/Makefile Mon Oct 17 00:24:13 2016 @@ -0,0 +1,14 @@ +# $NetBSD: Makefile,v 1.1 2016/10/17 00:24:13 joerg Exp $ + +.include "bsd.own.mk" + +CRYPTODIST=${NETBSDSRCDIR}/crypto +.include "${NETBSDSRCDIR}/crypto/Makefile.openssl" + +regen: + for i in ${OPENSSLSRC}/crypto/aes/asm/aesv8-armx.pl \ + ${OPENSSLSRC}/crypto/modes/asm/ghashv8-armx.pl \ + ${OPENSSLSRC}/crypto/sha/asm/sha1-armv8.pl; do \ + j=$$(basename $$i .pl).S; \ + perl $$i > $$j; \ + done Index: src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aes.inc diff -u /dev/null src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aes.inc:1.1 --- /dev/null Mon Oct 17 00:24:13 2016 +++ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aes.inc Mon Oct 17 00:24:13 2016 @@ -0,0 +1,4 @@ +.PATH.S: ${.PARSEDIR} +#AES_SRCS = aesv8-armx.S +#AESCPPFLAGS = -DAES_ASM +.include "../../aes.inc" Index: src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aesv8-armx.S diff -u /dev/null src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aesv8-armx.S:1.1 --- /dev/null Mon Oct 17 00:24:13 2016 +++ src/crypto/external/bsd/openssl/lib/libcrypto/arch/aarch64/aesv8-armx.S Mon Oct 17 00:24:13 2016 @@ -0,0 +1,754 @@ +#include "arm_arch.h" + +#if __ARM_MAX_ARCH__>=7 +.text +.arch armv7-a +.fpu neon +.code 32 +.align 5 +rcon: +.long 0x01,0x01,0x01,0x01 +.long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d @ rotate-n-splat +.long 0x1b,0x1b,0x1b,0x1b + +.globl aes_v8_set_encrypt_key +.type aes_v8_set_encrypt_key,%function +.align 5 +aes_v8_set_encrypt_key: +.Lenc_key: + mov r3,#-1 + cmp r0,#0 + beq .Lenc_key_abort + cmp r2,#0 + beq .Lenc_key_abort + mov r3,#-2 + cmp r1,#128 + blt .Lenc_key_abort + cmp r1,#256 + bgt .Lenc_key_abort + tst r1,#0x3f + bne .Lenc_key_abort + + adr r3,rcon + cmp r1,#192 + + veor q0,q0,q0 + vld1.8 {q3},[r0]! + mov r1,#8 @ reuse r1 + vld1.32 {q1,q2},[r3]! + + blt .Loop128 + beq .L192 + b .L256 + +.align 4 +.Loop128: + vtbl.8 d20,{q3},d4 + vtbl.8 d21,{q3},d5 + vext.8 q9,q0,q3,#12 + vst1.32 {q3},[r2]! + .byte 0x00,0x43,0xf0,0xf3 @ aese q10,q0 + subs r1,r1,#1 + + veor q3,q3,q9 + vext.8 q9,q0,q9,#12 + veor q3,q3,q9 + vext.8 q9,q0,q9,#12 + veor q10,q10,q1 + veor q3,q3,q9 + vshl.u8 q1,q1,#1 + veor q3,q3,q10 + bne .Loop128 + + vld1.32 {q1},[r3] + + vtbl.8 d20,{q3},d4 + vtbl.8 d21,{q3},d5 + vext.8 q9,q0,q3,#12 + vst1.32 {q3},[r2]! + .byte 0x00,0x43,0xf0,0xf3 @ aese q10,q0 + + veor q3,q3,q9 + vext.8 q9,q0,q9,#12 + veor q3,q3,q9 + vext.8 q9,q0,q9,#12 + veor q10,q10,q1 + veor q3,q3,q9 + vshl.u8 q1,q1,#1 + veor q3,q3,q10 + + vtbl.8 d20,{q3},d4 + vtbl.8 d21,{q3},d5 + vext.8 q9,q0,q3,#12 + vst1.32 {q3},[r2]! + .byte 0x00,0x43,0xf0,0xf3 @ aese q10,q0 + + veor q3,q3,q9 + vext.8 q9,q0,q9,#12 + veor q3,q3,q9 + vext.8 q9,q0,q9,#12 + veor q10,q10,q1 + veor q3,q3,q9 + veor q3,q3,q10 + vst1.32 {q3},[r2] + add r2,r2,#0x50 + + mov r12,#10 + b .Ldone + +.align 4 +.L192: + vld1.8 {d16},[r0]! + vmov.i8 q10,#8 @ borrow q10 + vst1.32 {q3},[r2]! + vsub.i8 q2,q2,q10 @ adjust the mask + +.Loop192: + vtbl.8 d20,{q8},d4 + vtbl.8 d21,{q8},d5 + vext.8 q9,q0,q3,#12 + vst1.32 {d16},[r2]! + .byte 0x00,0x43,0xf0,0xf3 @ aese q10,q0 + subs r1,r1,#1 + + veor q3,q3,q9 + vext.8 q9,q0,q9,#12 + veor q3,q3,q9 + vext.8 q9,q0,q9,#12 + veor q3,q3,q9 + +