Commit de51e830 authored by Andy Polyakov's avatar Andy Polyakov
Browse files

Engage POWER8 AES support.

parent a5510df3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -140,7 +140,7 @@ my $armv4_asm="armcap.o armv4cpuid.o:bn_asm.o armv4-mont.o armv4-gf2m.o::aes_cbc
my $aarch64_asm="armcap.o arm64cpuid.o mem_clr.o:::aes_core.o aes_cbc.o aesv8-armx.o:::sha1-armv8.o sha256-armv8.o sha512-armv8.o::::::::";
my $parisc11_asm="pariscid.o:bn_asm.o parisc-mont.o::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o::32";
my $parisc20_asm="pariscid.o:pa-risc2W.o parisc-mont.o::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o::64";
my $ppc64_asm="ppccpuid.o ppccap.o:bn-ppc.o ppc-mont.o ppc64-mont.o::aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o:::sha1-ppc.o sha256-ppc.o sha512-ppc.o::::::::";
my $ppc64_asm="ppccpuid.o ppccap.o:bn-ppc.o ppc-mont.o ppc64-mont.o::aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o aesp8-ppc.o:::sha1-ppc.o sha256-ppc.o sha512-ppc.o::::::::";
my $ppc32_asm=$ppc64_asm;
my $no_asm=":::::::::::::::void";

+10 −10
Original line number Diff line number Diff line
@@ -902,7 +902,7 @@ $bn_ops = BN_LLONG RC4_CHAR
$cpuid_obj    = ppccpuid.o ppccap.o
$bn_obj       = bn-ppc.o ppc-mont.o ppc64-mont.o
$des_obj      = 
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o aesp8-ppc.o
$bf_obj       = 
$md5_obj      = 
$sha1_obj     = sha1-ppc.o sha256-ppc.o sha512-ppc.o
@@ -935,7 +935,7 @@ $bn_ops = BN_LLONG RC4_CHAR
$cpuid_obj    = ppccpuid.o ppccap.o
$bn_obj       = bn-ppc.o ppc-mont.o ppc64-mont.o
$des_obj      = 
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o aesp8-ppc.o
$bf_obj       = 
$md5_obj      = 
$sha1_obj     = sha1-ppc.o sha256-ppc.o sha512-ppc.o
@@ -1001,7 +1001,7 @@ $bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR
$cpuid_obj    = ppccpuid.o ppccap.o
$bn_obj       = bn-ppc.o ppc-mont.o ppc64-mont.o
$des_obj      = 
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o aesp8-ppc.o
$bf_obj       = 
$md5_obj      = 
$sha1_obj     = sha1-ppc.o sha256-ppc.o sha512-ppc.o
@@ -1034,7 +1034,7 @@ $bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR
$cpuid_obj    = ppccpuid.o ppccap.o
$bn_obj       = bn-ppc.o ppc-mont.o ppc64-mont.o
$des_obj      = 
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o aesp8-ppc.o
$bf_obj       = 
$md5_obj      = 
$sha1_obj     = sha1-ppc.o sha256-ppc.o sha512-ppc.o
@@ -1463,7 +1463,7 @@ $bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
$cpuid_obj    = ppccpuid.o ppccap.o
$bn_obj       = bn-ppc.o ppc-mont.o ppc64-mont.o
$des_obj      = 
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o aesp8-ppc.o
$bf_obj       = 
$md5_obj      = 
$sha1_obj     = sha1-ppc.o sha256-ppc.o sha512-ppc.o
@@ -1496,7 +1496,7 @@ $bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
$cpuid_obj    = ppccpuid.o ppccap.o
$bn_obj       = bn-ppc.o ppc-mont.o ppc64-mont.o
$des_obj      = 
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o aesp8-ppc.o
$bf_obj       = 
$md5_obj      = 
$sha1_obj     = sha1-ppc.o sha256-ppc.o sha512-ppc.o
@@ -2189,7 +2189,7 @@ $bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
$cpuid_obj    = ppccpuid.o ppccap.o
$bn_obj       = bn-ppc.o ppc-mont.o ppc64-mont.o
$des_obj      = 
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o aesp8-ppc.o
$bf_obj       = 
$md5_obj      = 
$sha1_obj     = sha1-ppc.o sha256-ppc.o sha512-ppc.o
@@ -4532,7 +4532,7 @@ $bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL
$cpuid_obj    = ppccpuid.o ppccap.o
$bn_obj       = bn-ppc.o ppc-mont.o ppc64-mont.o
$des_obj      = 
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o aesp8-ppc.o
$bf_obj       = 
$md5_obj      = 
$sha1_obj     = sha1-ppc.o sha256-ppc.o sha512-ppc.o
@@ -4565,7 +4565,7 @@ $bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL
$cpuid_obj    = ppccpuid.o ppccap.o
$bn_obj       = bn-ppc.o ppc-mont.o ppc64-mont.o
$des_obj      = 
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o aesp8-ppc.o
$bf_obj       = 
$md5_obj      = 
$sha1_obj     = sha1-ppc.o sha256-ppc.o sha512-ppc.o
@@ -4598,7 +4598,7 @@ $bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL
$cpuid_obj    = ppccpuid.o ppccap.o
$bn_obj       = bn-ppc.o ppc-mont.o ppc64-mont.o
$des_obj      = 
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o
$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o aesp8-ppc.o
$bf_obj       = 
$md5_obj      = 
$sha1_obj     = sha1-ppc.o sha256-ppc.o sha512-ppc.o
+2 −0
Original line number Diff line number Diff line
@@ -79,6 +79,8 @@ aes-ppc.s: asm/aes-ppc.pl
	$(PERL) asm/aes-ppc.pl $(PERLASM_SCHEME) $@
vpaes-ppc.s:	asm/vpaes-ppc.pl
	$(PERL) asm/vpaes-ppc.pl $(PERLASM_SCHEME) $@
aesp8-ppc.s:	asm/aesp8-ppc.pl
	$(PERL) asm/aesp8-ppc.pl $(PERLASM_SCHEME) $@

aes-parisc.s:	asm/aes-parisc.pl
	$(PERL) asm/aes-parisc.pl $(PERLASM_SCHEME) $@
+1 −1
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@ die "can't locate ppc-xlate.pl";
open STDOUT,"| $^X $xlate $flavour ".shift || die "can't call $xlate: $!";

$FRAME=8*$SIZE_T;
$prefix="AES";
$prefix="aes_p8";

$sp="r1";
$vrsave="r12";
+10 −2
Original line number Diff line number Diff line
@@ -154,10 +154,18 @@ void AES_xts_decrypt(const char *inp,char *out,size_t len,
			const unsigned char iv[16]);
#endif

#if	defined(VPAES_ASM) && (defined(__powerpc__) || defined(__ppc__) || defined(_ARCH_PPC))
#if	defined(OPENSSL_CPUID_OBJ) && (defined(__powerpc__) || defined(__ppc__) || defined(_ARCH_PPC))
extern unsigned int OPENSSL_ppccap_P;
# ifdef VPAES_ASM
#  define VPAES_CAPABLE	(OPENSSL_ppccap_P&(1<<1))
# endif
# define HWAES_CAPABLE	(OPENSSL_ppccap_P&(1<<2))
# define HWAES_set_encrypt_key aes_p8_set_encrypt_key
# define HWAES_set_decrypt_key aes_p8_set_decrypt_key
# define HWAES_encrypt aes_p8_encrypt
# define HWAES_decrypt aes_p8_decrypt
# define HWAES_cbc_encrypt aes_p8_cbc_encrypt
#endif

#if	defined(AES_ASM) && !defined(I386_ONLY) &&	(  \
	((defined(__i386)	|| defined(__i386__)	|| \
Loading