mirror of
https://github.com/openssl/openssl.git
synced 2025-02-11 14:22:43 +08:00
Engage GHASH for PowerISA 2.07.
This commit is contained in:
parent
927f2e5dea
commit
14aaf883d9
@ -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:::::::ghashv8-armx.o:";
|
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:::::::ghashv8-armx.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 $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 $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 aesp8-ppc.o:::sha1-ppc.o sha256-ppc.o sha512-ppc.o sha256p8-ppc.o sha512p8-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 sha256p8-ppc.o sha512p8-ppc.o:::::::ghashp8-ppc.o:";
|
||||||
my $ppc32_asm=$ppc64_asm;
|
my $ppc32_asm=$ppc64_asm;
|
||||||
my $no_asm=":::::::::::::::void";
|
my $no_asm=":::::::::::::::void";
|
||||||
|
|
||||||
|
20
TABLE
20
TABLE
@ -912,7 +912,7 @@ $rmd160_obj =
|
|||||||
$rc5_obj =
|
$rc5_obj =
|
||||||
$wp_obj =
|
$wp_obj =
|
||||||
$cmll_obj =
|
$cmll_obj =
|
||||||
$modes_obj =
|
$modes_obj = ghashp8-ppc.o
|
||||||
$engines_obj =
|
$engines_obj =
|
||||||
$perlasm_scheme = aix32
|
$perlasm_scheme = aix32
|
||||||
$dso_scheme = dlfcn
|
$dso_scheme = dlfcn
|
||||||
@ -945,7 +945,7 @@ $rmd160_obj =
|
|||||||
$rc5_obj =
|
$rc5_obj =
|
||||||
$wp_obj =
|
$wp_obj =
|
||||||
$cmll_obj =
|
$cmll_obj =
|
||||||
$modes_obj =
|
$modes_obj = ghashp8-ppc.o
|
||||||
$engines_obj =
|
$engines_obj =
|
||||||
$perlasm_scheme = aix32
|
$perlasm_scheme = aix32
|
||||||
$dso_scheme = dlfcn
|
$dso_scheme = dlfcn
|
||||||
@ -1011,7 +1011,7 @@ $rmd160_obj =
|
|||||||
$rc5_obj =
|
$rc5_obj =
|
||||||
$wp_obj =
|
$wp_obj =
|
||||||
$cmll_obj =
|
$cmll_obj =
|
||||||
$modes_obj =
|
$modes_obj = ghashp8-ppc.o
|
||||||
$engines_obj =
|
$engines_obj =
|
||||||
$perlasm_scheme = aix64
|
$perlasm_scheme = aix64
|
||||||
$dso_scheme = dlfcn
|
$dso_scheme = dlfcn
|
||||||
@ -1044,7 +1044,7 @@ $rmd160_obj =
|
|||||||
$rc5_obj =
|
$rc5_obj =
|
||||||
$wp_obj =
|
$wp_obj =
|
||||||
$cmll_obj =
|
$cmll_obj =
|
||||||
$modes_obj =
|
$modes_obj = ghashp8-ppc.o
|
||||||
$engines_obj =
|
$engines_obj =
|
||||||
$perlasm_scheme = aix64
|
$perlasm_scheme = aix64
|
||||||
$dso_scheme = dlfcn
|
$dso_scheme = dlfcn
|
||||||
@ -1473,7 +1473,7 @@ $rmd160_obj =
|
|||||||
$rc5_obj =
|
$rc5_obj =
|
||||||
$wp_obj =
|
$wp_obj =
|
||||||
$cmll_obj =
|
$cmll_obj =
|
||||||
$modes_obj =
|
$modes_obj = ghashp8-ppc.o
|
||||||
$engines_obj =
|
$engines_obj =
|
||||||
$perlasm_scheme = osx32
|
$perlasm_scheme = osx32
|
||||||
$dso_scheme = dlfcn
|
$dso_scheme = dlfcn
|
||||||
@ -1506,7 +1506,7 @@ $rmd160_obj =
|
|||||||
$rc5_obj =
|
$rc5_obj =
|
||||||
$wp_obj =
|
$wp_obj =
|
||||||
$cmll_obj =
|
$cmll_obj =
|
||||||
$modes_obj =
|
$modes_obj = ghashp8-ppc.o
|
||||||
$engines_obj =
|
$engines_obj =
|
||||||
$perlasm_scheme = osx64
|
$perlasm_scheme = osx64
|
||||||
$dso_scheme = dlfcn
|
$dso_scheme = dlfcn
|
||||||
@ -2199,7 +2199,7 @@ $rmd160_obj =
|
|||||||
$rc5_obj =
|
$rc5_obj =
|
||||||
$wp_obj =
|
$wp_obj =
|
||||||
$cmll_obj =
|
$cmll_obj =
|
||||||
$modes_obj =
|
$modes_obj = ghashp8-ppc.o
|
||||||
$engines_obj =
|
$engines_obj =
|
||||||
$perlasm_scheme = osx32
|
$perlasm_scheme = osx32
|
||||||
$dso_scheme = dlfcn
|
$dso_scheme = dlfcn
|
||||||
@ -4542,7 +4542,7 @@ $rmd160_obj =
|
|||||||
$rc5_obj =
|
$rc5_obj =
|
||||||
$wp_obj =
|
$wp_obj =
|
||||||
$cmll_obj =
|
$cmll_obj =
|
||||||
$modes_obj =
|
$modes_obj = ghashp8-ppc.o
|
||||||
$engines_obj =
|
$engines_obj =
|
||||||
$perlasm_scheme = linux32
|
$perlasm_scheme = linux32
|
||||||
$dso_scheme = dlfcn
|
$dso_scheme = dlfcn
|
||||||
@ -4575,7 +4575,7 @@ $rmd160_obj =
|
|||||||
$rc5_obj =
|
$rc5_obj =
|
||||||
$wp_obj =
|
$wp_obj =
|
||||||
$cmll_obj =
|
$cmll_obj =
|
||||||
$modes_obj =
|
$modes_obj = ghashp8-ppc.o
|
||||||
$engines_obj =
|
$engines_obj =
|
||||||
$perlasm_scheme = linux64
|
$perlasm_scheme = linux64
|
||||||
$dso_scheme = dlfcn
|
$dso_scheme = dlfcn
|
||||||
@ -4608,7 +4608,7 @@ $rmd160_obj =
|
|||||||
$rc5_obj =
|
$rc5_obj =
|
||||||
$wp_obj =
|
$wp_obj =
|
||||||
$cmll_obj =
|
$cmll_obj =
|
||||||
$modes_obj =
|
$modes_obj = ghashp8-ppc.o
|
||||||
$engines_obj =
|
$engines_obj =
|
||||||
$perlasm_scheme = linux64le
|
$perlasm_scheme = linux64le
|
||||||
$dso_scheme = dlfcn
|
$dso_scheme = dlfcn
|
||||||
|
@ -62,6 +62,8 @@ ghash-parisc.s: asm/ghash-parisc.pl
|
|||||||
$(PERL) asm/ghash-parisc.pl $(PERLASM_SCHEME) $@
|
$(PERL) asm/ghash-parisc.pl $(PERLASM_SCHEME) $@
|
||||||
ghashv8-armx.S: asm/ghashv8-armx.pl
|
ghashv8-armx.S: asm/ghashv8-armx.pl
|
||||||
$(PERL) asm/ghashv8-armx.pl $(PERLASM_SCHEME) $@
|
$(PERL) asm/ghashv8-armx.pl $(PERLASM_SCHEME) $@
|
||||||
|
ghashp8-ppc.s: asm/ghashp8-ppc.pl
|
||||||
|
$(PERL) asm/ghashp8-ppc.pl $(PERLASM_SCHEME) $@
|
||||||
|
|
||||||
# GNU make "catch all"
|
# GNU make "catch all"
|
||||||
ghash-%.S: asm/ghash-%.pl; $(PERL) $< $(PERLASM_SCHEME) $@
|
ghash-%.S: asm/ghash-%.pl; $(PERL) $< $(PERLASM_SCHEME) $@
|
||||||
|
@ -700,6 +700,13 @@ extern unsigned int OPENSSL_sparcv9cap_P[];
|
|||||||
void gcm_init_vis3(u128 Htable[16],const u64 Xi[2]);
|
void gcm_init_vis3(u128 Htable[16],const u64 Xi[2]);
|
||||||
void gcm_gmult_vis3(u64 Xi[2],const u128 Htable[16]);
|
void gcm_gmult_vis3(u64 Xi[2],const u128 Htable[16]);
|
||||||
void gcm_ghash_vis3(u64 Xi[2],const u128 Htable[16],const u8 *inp,size_t len);
|
void gcm_ghash_vis3(u64 Xi[2],const u128 Htable[16],const u8 *inp,size_t len);
|
||||||
|
#elif defined(OPENSSL_CPUID_OBJ) && (defined(__powerpc__) || defined(__ppc__) || defined(_ARCH_PPC))
|
||||||
|
# define GHASH_ASM_PPC
|
||||||
|
# define GCM_FUNCREF_4BIT
|
||||||
|
extern unsigned int OPENSSL_ppccap_P[];
|
||||||
|
void gcm_init_p8(u128 Htable[16],const u64 Xi[2]);
|
||||||
|
void gcm_gmult_p8(u64 Xi[2],const u128 Htable[16]);
|
||||||
|
void gcm_ghash_p8(u64 Xi[2],const u128 Htable[16],const u8 *inp,size_t len);
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -803,6 +810,16 @@ void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx,void *key,block128_f block)
|
|||||||
ctx->gmult = gcm_gmult_4bit;
|
ctx->gmult = gcm_gmult_4bit;
|
||||||
ctx->ghash = gcm_ghash_4bit;
|
ctx->ghash = gcm_ghash_4bit;
|
||||||
}
|
}
|
||||||
|
# elif defined(GHASH_ASM_PPC)
|
||||||
|
if (OPENSSL_ppccap_P[0] & (1<<2)) {
|
||||||
|
gcm_init_p8(ctx->Htable,ctx->H.u);
|
||||||
|
ctx->gmult = gcm_gmult_p8;
|
||||||
|
ctx->ghash = gcm_ghash_p8;
|
||||||
|
} else {
|
||||||
|
gcm_init_4bit(ctx->Htable,ctx->H.u);
|
||||||
|
ctx->gmult = gcm_gmult_4bit;
|
||||||
|
ctx->ghash = gcm_ghash_4bit;
|
||||||
|
}
|
||||||
# else
|
# else
|
||||||
gcm_init_4bit(ctx->Htable,ctx->H.u);
|
gcm_init_4bit(ctx->Htable,ctx->H.u);
|
||||||
# endif
|
# endif
|
||||||
|
Loading…
Reference in New Issue
Block a user