thread_scheme => "(unknown)", # Assume we don't know
thread_defines => [],
- ec_asm_src => "",
des_asm_src => "des_enc.c fcrypt_b.c",
aes_asm_src => "aes_core.c aes_cbc.c",
bf_asm_src => "bf_enc.c",
x86_asm => {
template => 1,
- ec_asm_src => "ecp_nistz256.c ecp_nistz256-x86.s",
des_asm_src => "des-586.s crypt586.s",
aes_asm_src => "aes-586.s vpaes-x86.s aesni-x86.s",
bf_asm_src => "bf-586.s",
},
x86_64_asm => {
template => 1,
- ec_asm_src => "ecp_nistz256.c ecp_nistz256-x86_64.s x25519-x86_64.s",
aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
md5_asm_src => "md5-x86_64.s",
sha1_asm_src => "sha1-x86_64.s sha256-x86_64.s sha512-x86_64.s sha1-mb-x86_64.s sha256-mb-x86_64.s",
},
sparcv9_asm => {
template => 1,
- ec_asm_src => "ecp_nistz256.c ecp_nistz256-sparcv9.S",
des_asm_src => "des_enc-sparc.S fcrypt_b.c dest4-sparcv9.S",
aes_asm_src => "aes_core.c aes_cbc.c aes-sparcv9.S aest4-sparcv9.S aesfx-sparcv9.S",
md5_asm_src => "md5-sparcv9.S",
},
armv4_asm => {
template => 1,
- ec_asm_src => "ecp_nistz256.c ecp_nistz256-armv4.S",
aes_asm_src => "aes_cbc.c aes-armv4.S bsaes-armv7.S aesv8-armx.S",
sha1_asm_src => "sha1-armv4-large.S sha256-armv4.S sha512-armv4.S",
modes_asm_src => "ghash-armv4.S ghashv8-armx.S",
},
aarch64_asm => {
template => 1,
- ec_asm_src => "ecp_nistz256.c ecp_nistz256-armv8.S",
aes_asm_src => "aes_core.c aes_cbc.c aesv8-armx.S vpaes-armv8.S",
sha1_asm_src => "sha1-armv8.S sha256-armv8.S sha512-armv8.S",
modes_asm_src => "ghashv8-armx.S",
ppc64_asm => {
inherit_from => [ "ppc32_asm" ],
template => 1,
- ec_asm_src => "ecp_nistz256.c ecp_nistz256-ppc64.s x25519-ppc64.s",
keccak1600_asm_src => "keccak1600-ppc64.s",
},
);
export vars as
accessor functions.
- ec_asm_src => Assembler implementation of core EC
- functions.
des_asm_src => Assembler implementation of core DES
encryption functions.
Defaults to 'des_enc.c fcrypt_b.c'
if ($target{modes_asm_src} =~ /ghash-/) {
push @{$config{lib_defines}}, "GHASH_ASM";
}
- if ($target{ec_asm_src} =~ /ecp_nistz256/) {
- push @{$config{lib_defines}}, "ECP_NISTZ256_ASM";
- }
- if ($target{ec_asm_src} =~ /x25519/) {
- push @{$config{lib_defines}}, "X25519_ASM";
- }
if ($target{padlock_asm_src} ne $table{DEFAULTS}->{padlock_asm_src}) {
push @{$config{dso_defines}}, "PADLOCK_ASM";
}
"loutflag",
"ex_libs",
"bn_ops",
- "ec_asm_src",
"des_asm_src",
"aes_asm_src",
"bf_asm_src",
+$ECASM=
+IF[{- !$disabled{asm} -}]
+ $ECASM_x86=ecp_nistz256.c ecp_nistz256-x86.s
+ $ECDEF_x86=ECP_NISTZ256_ASM
+
+ $ECASM_x86_64=ecp_nistz256.c ecp_nistz256-x86_64.s x25519-x86_64.s
+ $ECDEF_x86_64=ECP_NISTZ256_ASM X25519_ASM
+
+ $ECASM_ia64=
+
+ $ECASM_sparcv9=ecp_nistz256.c ecp_nistz256-sparcv9.S
+ $ECDEF_sparcv9=ECP_NISTZ256_ASM
+
+ $ECASM_sparcv8=
+
+ $ECASM_alpha=
+
+ $ECASM_mips32=
+ $ECASM_mips64=
+
+ $ECASM_s390x=
+
+ $ECASM_armv4=ecp_nistz256.c ecp_nistz256-armv4.S
+ $ECDEF_armv4=ECP_NISTZ256_ASM
+ $ECASM_aarch64=ecp_nistz256.c ecp_nistz256-armv8.S
+ $ECDEF_aarch64=ECP_NISTZ256_ASM
+
+ $ECASM_parisc11=
+ $ECASM_parisc20_64=
+
+ $ECASM_ppc32=
+ $ECASM_ppc64=ecp_nistz256.c ecp_nistz256-ppc64.s x25519-ppc64.s
+ $ECDEF_ppc64=ECP_NISTZ256_ASM X25519_ASM
+
+ $ECASM_c64xplus=
+
+ # Now that we have defined all the arch specific variables, use the
+ # appropriate one, and define the appropriate macros
+ IF[$ECASM_{- $target{asm_arch} -}]
+ $ECASM=$ECASM_{- $target{asm_arch} -}
+ $ECDEF=$ECDEF_{- $target{asm_arch} -}
+ ENDIF
+ENDIF
+
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
ec_lib.c ecp_smpl.c ecp_mont.c ecp_nist.c ec_cvt.c ec_mult.c \
ecdsa_ossl.c ecdsa_sign.c ecdsa_vrf.c curve25519.c ecx_meth.c \
curve448/arch_32/f_impl.c curve448/f_generic.c curve448/scalar.c \
curve448/curve448_tables.c curve448/eddsa.c curve448/curve448.c \
- {- $target{ec_asm_src} -}
+ $ECASM
+DEFINE[../../libcrypto]=$ECDEF
GENERATE[ecp_nistz256-x86.s]=asm/ecp_nistz256-x86.pl \
$(PERLASM_SCHEME) $(LIB_CFLAGS) $(LIB_CPPFLAGS) $(PROCESSOR)