aboutsummaryrefslogtreecommitdiff
path: root/secure
diff options
context:
space:
mode:
authorPierre Pronchery <pierre@freebsdfoundation.org>2023-06-30 17:23:57 +0000
committerMark Johnston <markj@FreeBSD.org>2023-07-04 19:05:01 +0000
commitc4b7fe91fcb879b6e7fc360c932845e7cc5d78f1 (patch)
tree981066502c3143677e7fd93e502cc18f683fabdc /secure
parent0b27be500a947b76385a4a179e6f61d83af6adb3 (diff)
downloadsrc-c4b7fe91fcb879b6e7fc360c932845e7cc5d78f1.tar.gz
src-c4b7fe91fcb879b6e7fc360c932845e7cc5d78f1.zip
libcrypto: group definitions for libcrypto and fips
OpenSSL 3 supports a modular architecture, allowing different providers to bring specific implementations of cryptographical algorithms. This change makes sure the FIPS module matches build instructions used for libcrypto. Sponsored by: The FreeBSD Foundation Pull Request: https://github.com/freebsd/freebsd-src/pull/787
Diffstat (limited to 'secure')
-rw-r--r--secure/lib/libcrypto/Makefile.common102
-rw-r--r--secure/lib/libcrypto/Makefile.inc103
-rw-r--r--secure/lib/libcrypto/modules/fips/Makefile130
3 files changed, 121 insertions, 214 deletions
diff --git a/secure/lib/libcrypto/Makefile.common b/secure/lib/libcrypto/Makefile.common
new file mode 100644
index 000000000000..ff9050e72370
--- /dev/null
+++ b/secure/lib/libcrypto/Makefile.common
@@ -0,0 +1,102 @@
+# $FreeBSD$
+
+.include <bsd.endian.mk>
+
+.if ${TARGET_ENDIANNESS} == 1234
+CFLAGS+= -DL_ENDIAN
+.elif ${TARGET_ENDIANNESS} == 4321
+CFLAGS+= -DB_ENDIAN
+.endif
+
+.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
+ ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "i386"
+ASM_${MACHINE_CPUARCH}=
+.elif ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" || \
+ ${MACHINE_ARCH} == "powerpc64le"
+ASM_${MACHINE_ARCH}=
+.endif
+
+.if defined(ASM_${MACHINE_CPUARCH}) || defined(ASM_${MACHINE_ARCH})
+CFLAGS+= -DOPENSSL_CPUID_OBJ
+.if defined(ASM_aarch64)
+CFLAGS+= -DOPENSSL_BN_ASM_MONT
+CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
+CFLAGS+= -DKECCAK1600_ASM
+CFLAGS+= -DVPAES_ASM
+CFLAGS+= -DECP_NISTZ256_ASM
+CFLAGS+= -DPOLY1305_ASM
+.elif defined(ASM_amd64)
+CFLAGS+= -DOPENSSL_IA32_SSE2
+CFLAGS+= -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5
+CFLAGS+= -DOPENSSL_BN_ASM_GF2m
+CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
+CFLAGS+= -DKECCAK1600_ASM
+CFLAGS+= -DRC4_ASM
+CFLAGS+= -DMD5_ASM
+CFLAGS+= -DVPAES_ASM
+CFLAGS+= -DGHASH_ASM
+CFLAGS+= -DECP_NISTZ256_ASM -DX25519_ASM
+CFLAGS+= -DPADLOCK_ASM
+CFLAGS+= -DPOLY1305_ASM
+.elif defined(ASM_arm)
+CFLAGS+= -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m
+CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
+CFLAGS+= -DKECCAK1600_ASM
+CFLAGS+= -DBSAES_ASM
+CFLAGS+= -DGHASH_ASM
+CFLAGS+= -DECP_NISTZ256_ASM
+CFLAGS+= -DPOLY1305_ASM
+.elif defined(ASM_i386)
+CFLAGS+= -DOPENSSL_IA32_SSE2
+CFLAGS+= -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_BN_ASM_MONT
+CFLAGS+= -DOPENSSL_BN_ASM_GF2m
+CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
+CFLAGS+= -DRC4_ASM
+CFLAGS+= -DMD5_ASM
+CFLAGS+= -DRMD160_ASM
+CFLAGS+= -DVPAES_ASM
+CFLAGS+= -DWHIRLPOOL_ASM
+CFLAGS+= -DGHASH_ASM
+CFLAGS+= -DECP_NISTZ256_ASM
+CFLAGS+= -DPADLOCK_ASM
+CFLAGS+= -DPOLY1305_ASM
+.elif defined(ASM_powerpc)
+CFLAGS+= -DOPENSSL_BN_ASM_MONT
+CFLAGS+= -DAES_ASM
+CFLAGS+= -DVPAES_ASM
+CFLAGS+= -DSHA1_ASM
+CFLAGS+= -DSHA256_ASM
+CFLAGS+= -DSHA512_ASM
+CFLAGS+= -DPOLY1305_ASM
+.elif defined(ASM_powerpc64)
+CFLAGS+= -DOPENSSL_BN_ASM_MONT
+CFLAGS+= -DAES_ASM
+CFLAGS+= -DVPAES_ASM
+CFLAGS+= -DSHA1_ASM
+CFLAGS+= -DSHA256_ASM
+CFLAGS+= -DSHA512_ASM
+CFLAGS+= -DPOLY1305_ASM
+CFLAGS+= -DECP_NISTZ256_ASM
+CFLAGS+= -DX25519_ASM
+CFLAGS+= -DKECCAK1600_ASM
+.elif defined(ASM_powerpc64le)
+CFLAGS+= -DOPENSSL_BN_ASM_MONT
+CFLAGS+= -DAES_ASM
+CFLAGS+= -DVPAES_ASM
+CFLAGS+= -DSHA1_ASM
+CFLAGS+= -DSHA256_ASM
+CFLAGS+= -DSHA512_ASM
+CFLAGS+= -DPOLY1305_ASM
+CFLAGS+= -DECP_NISTZ256_ASM
+CFLAGS+= -DX25519_ASM
+CFLAGS+= -DKECCAK1600_ASM
+.endif
+.endif
+
+MANDIR= ${SHAREDIR}/openssl/man/man
+
+CFLAGS+= -DOPENSSLDIR="\"/etc/ssl\""
+CFLAGS+= -DENGINESDIR="\"${LIBDIR}/engines-3\""
+CFLAGS+= -DMODULESDIR="\"${LIBDIR}/ossl-modules\""
+
+CFLAGS+= -DNDEBUG
diff --git a/secure/lib/libcrypto/Makefile.inc b/secure/lib/libcrypto/Makefile.inc
index d995fb2a0cb2..d462d9f82857 100644
--- a/secure/lib/libcrypto/Makefile.inc
+++ b/secure/lib/libcrypto/Makefile.inc
@@ -14,108 +14,7 @@ CFLAGS+= -I${LCRYPTO_SRC}/include
CFLAGS+= -I${LCRYPTO_SRC}/providers/common/include
CFLAGS+= -I${LCRYPTO_SRC}/providers/implementations/include
-.include <bsd.endian.mk>
-
-.if ${TARGET_ENDIANNESS} == 1234
-CFLAGS+= -DL_ENDIAN
-.elif ${TARGET_ENDIANNESS} == 4321
-CFLAGS+= -DB_ENDIAN
-.endif
-
-.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
- ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "i386"
-ASM_${MACHINE_CPUARCH}=
-.elif ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" || \
- ${MACHINE_ARCH} == "powerpc64le"
-ASM_${MACHINE_ARCH}=
-.endif
-
-.if defined(ASM_${MACHINE_CPUARCH}) || defined(ASM_${MACHINE_ARCH})
-CFLAGS+= -DOPENSSL_CPUID_OBJ
-.if defined(ASM_aarch64)
-CFLAGS+= -DOPENSSL_BN_ASM_MONT
-CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
-CFLAGS+= -DKECCAK1600_ASM
-CFLAGS+= -DVPAES_ASM
-CFLAGS+= -DECP_NISTZ256_ASM
-CFLAGS+= -DPOLY1305_ASM
-.elif defined(ASM_amd64)
-CFLAGS+= -DOPENSSL_IA32_SSE2
-CFLAGS+= -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5
-CFLAGS+= -DOPENSSL_BN_ASM_GF2m
-CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
-CFLAGS+= -DKECCAK1600_ASM
-CFLAGS+= -DRC4_ASM
-CFLAGS+= -DMD5_ASM
-CFLAGS+= -DVPAES_ASM
-CFLAGS+= -DGHASH_ASM
-CFLAGS+= -DECP_NISTZ256_ASM -DX25519_ASM
-CFLAGS+= -DPADLOCK_ASM
-CFLAGS+= -DPOLY1305_ASM
-.elif defined(ASM_arm)
-CFLAGS+= -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m
-CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
-CFLAGS+= -DKECCAK1600_ASM
-CFLAGS+= -DBSAES_ASM
-CFLAGS+= -DGHASH_ASM
-CFLAGS+= -DECP_NISTZ256_ASM
-CFLAGS+= -DPOLY1305_ASM
-.elif defined(ASM_i386)
-CFLAGS+= -DOPENSSL_IA32_SSE2
-CFLAGS+= -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_BN_ASM_MONT
-CFLAGS+= -DOPENSSL_BN_ASM_GF2m
-CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
-CFLAGS+= -DRC4_ASM
-CFLAGS+= -DMD5_ASM
-CFLAGS+= -DRMD160_ASM
-CFLAGS+= -DVPAES_ASM
-CFLAGS+= -DWHIRLPOOL_ASM
-CFLAGS+= -DGHASH_ASM
-CFLAGS+= -DECP_NISTZ256_ASM
-CFLAGS+= -DPADLOCK_ASM
-CFLAGS+= -DPOLY1305_ASM
-.elif defined(ASM_powerpc)
-CFLAGS+= -DOPENSSL_BN_ASM_MONT
-CFLAGS+= -DAES_ASM
-CFLAGS+= -DVPAES_ASM
-CFLAGS+= -DSHA1_ASM
-CFLAGS+= -DSHA256_ASM
-CFLAGS+= -DSHA512_ASM
-CFLAGS+= -DPOLY1305_ASM
-.elif defined(ASM_powerpc64)
-CFLAGS+= -DOPENSSL_BN_ASM_MONT
-CFLAGS+= -DAES_ASM
-CFLAGS+= -DVPAES_ASM
-CFLAGS+= -DSHA1_ASM
-CFLAGS+= -DSHA256_ASM
-CFLAGS+= -DSHA512_ASM
-CFLAGS+= -DPOLY1305_ASM
-CFLAGS+= -DECP_NISTZ256_ASM
-CFLAGS+= -DX25519_ASM
-CFLAGS+= -DKECCAK1600_ASM
-.elif defined(ASM_powerpc64le)
-CFLAGS+= -DOPENSSL_BN_ASM_MONT
-CFLAGS+= -DAES_ASM
-CFLAGS+= -DVPAES_ASM
-CFLAGS+= -DSHA1_ASM
-CFLAGS+= -DSHA256_ASM
-CFLAGS+= -DSHA512_ASM
-CFLAGS+= -DPOLY1305_ASM
-CFLAGS+= -DECP_NISTZ256_ASM
-CFLAGS+= -DX25519_ASM
-CFLAGS+= -DKECCAK1600_ASM
-.endif
-.endif
-
-.if defined(LIB)
-CFLAGS+= -DOPENSSLDIR="\"/etc/ssl\""
-CFLAGS+= -DENGINESDIR="\"${LIBDIR}/engines-3\""
-CFLAGS+= -DMODULESDIR="\"${LIBDIR}/ossl-modules\""
-.endif
-
-CFLAGS+= -DNDEBUG
-
-MANDIR= ${SHAREDIR}/openssl/man/man
+.include "Makefile.common"
.for pcfile in ${PCFILES}
${pcfile}: ${pcfile}.in
diff --git a/secure/lib/libcrypto/modules/fips/Makefile b/secure/lib/libcrypto/modules/fips/Makefile
index 510d017d27ab..c8b79e3badfd 100644
--- a/secure/lib/libcrypto/modules/fips/Makefile
+++ b/secure/lib/libcrypto/modules/fips/Makefile
@@ -4,123 +4,14 @@ SHLIB_NAME?= fips.so
CFLAGS+= -DFIPS_MODULE
-SRCS= fips_entry.c fipsprov.c self_test.c self_test_kats.c
-
-# XXX from secure/lib/libcrypto/Makefile.inc
-.include <bsd.own.mk>
-
-#.include <bsd.endian.mk>
-#
-#.if ${TARGET_ENDIANNESS} == 1234
-#CFLAGS+= -DL_ENDIAN
-#.elif ${TARGET_ENDIANNESS} == 4321
-#CFLAGS+= -DB_ENDIAN
-#.endif
-
-.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
- ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "i386"
-ASM_${MACHINE_CPUARCH}=
-.elif ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" || \
- ${MACHINE_ARCH} == "powerpc64le"
-ASM_${MACHINE_ARCH}=
-.endif
+SRCS+= fips_entry.c fipsprov.c self_test.c self_test_kats.c
-.if defined(ASM_${MACHINE_CPUARCH}) || defined(ASM_${MACHINE_ARCH})
-CFLAGS+= -DOPENSSL_CPUID_OBJ
-.if defined(ASM_aarch64)
-CFLAGS+= -DOPENSSL_BN_ASM_MONT
-CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
-CFLAGS+= -DKECCAK1600_ASM
-CFLAGS+= -DVPAES_ASM
-CFLAGS+= -DECP_NISTZ256_ASM
-CFLAGS+= -DPOLY1305_ASM
-.elif defined(ASM_amd64)
-CFLAGS+= -DOPENSSL_IA32_SSE2
-CFLAGS+= -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5
-CFLAGS+= -DOPENSSL_BN_ASM_GF2m
-CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
-CFLAGS+= -DKECCAK1600_ASM
-CFLAGS+= -DRC4_ASM
-CFLAGS+= -DMD5_ASM
-CFLAGS+= -DVPAES_ASM
-CFLAGS+= -DGHASH_ASM
-CFLAGS+= -DECP_NISTZ256_ASM -DX25519_ASM
-CFLAGS+= -DPADLOCK_ASM
-CFLAGS+= -DPOLY1305_ASM
-.elif defined(ASM_arm)
-CFLAGS+= -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m
-CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
-CFLAGS+= -DKECCAK1600_ASM
-CFLAGS+= -DBSAES_ASM
-CFLAGS+= -DGHASH_ASM
-CFLAGS+= -DECP_NISTZ256_ASM
-CFLAGS+= -DPOLY1305_ASM
-.elif defined(ASM_i386)
-CFLAGS+= -DOPENSSL_IA32_SSE2
-CFLAGS+= -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_BN_ASM_MONT
-CFLAGS+= -DOPENSSL_BN_ASM_GF2m
-CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
-CFLAGS+= -DRC4_ASM
-CFLAGS+= -DMD5_ASM
-CFLAGS+= -DRMD160_ASM
-CFLAGS+= -DVPAES_ASM
-CFLAGS+= -DWHIRLPOOL_ASM
-CFLAGS+= -DGHASH_ASM
-CFLAGS+= -DECP_NISTZ256_ASM
-CFLAGS+= -DPADLOCK_ASM
-CFLAGS+= -DPOLY1305_ASM
-.elif defined(ASM_powerpc)
-CFLAGS+= -DOPENSSL_BN_ASM_MONT
-CFLAGS+= -DAES_ASM
-CFLAGS+= -DVPAES_ASM
-CFLAGS+= -DSHA1_ASM
-CFLAGS+= -DSHA256_ASM
-CFLAGS+= -DSHA512_ASM
-CFLAGS+= -DPOLY1305_ASM
-.elif defined(ASM_powerpc64)
-CFLAGS+= -DOPENSSL_BN_ASM_MONT
-CFLAGS+= -DAES_ASM
-CFLAGS+= -DVPAES_ASM
-CFLAGS+= -DSHA1_ASM
-CFLAGS+= -DSHA256_ASM
-CFLAGS+= -DSHA512_ASM
-CFLAGS+= -DPOLY1305_ASM
-CFLAGS+= -DECP_NISTZ256_ASM
-CFLAGS+= -DX25519_ASM
-CFLAGS+= -DKECCAK1600_ASM
-.elif defined(ASM_powerpc64le)
-CFLAGS+= -DOPENSSL_BN_ASM_MONT
-CFLAGS+= -DAES_ASM
-CFLAGS+= -DVPAES_ASM
-CFLAGS+= -DSHA1_ASM
-CFLAGS+= -DSHA256_ASM
-CFLAGS+= -DSHA512_ASM
-CFLAGS+= -DPOLY1305_ASM
-CFLAGS+= -DECP_NISTZ256_ASM
-CFLAGS+= -DX25519_ASM
-CFLAGS+= -DKECCAK1600_ASM
-.endif
-.endif
+.include "../../Makefile.common"
# crypto
SRCS+= provider_core.c provider_predefined.c \
core_fetch.c core_algorithm.c core_namemap.c self_test_core.c
-# crypto/ec
-SRCS+= ec_lib.c ecp_smpl.c ecp_mont.c ecp_nist.c ec_cvt.c ec_mult.c \
- ec_curve.c ec_check.c ec_key.c ec_kmeth.c ecx_key.c ec_asn1.c \
- ec2_smpl.c \
- ecp_oct.c ec2_oct.c ec_oct.c ecdh_ossl.c \
- ecdsa_ossl.c ecdsa_sign.c ecdsa_vrf.c curve25519.c \
- curve448/f_generic.c curve448/scalar.c \
- curve448/curve448_tables.c curve448/eddsa.c curve448/curve448.c \
- ec_backend.c ecx_backend.c ecdh_kdf.c curve448/arch_64/f_impl64.c \
- curve448/arch_32/f_impl32.c
-SRCS+= cryptlib.c params.c params_from_text.c bsearch.c ex_data.c o_str.c \
- threads_pthread.c threads_none.c initthread.c \
- context.c sparse_array.c asn1_dsa.c packet.c param_build.c \
- param_build_set.c der_writer.c threads_lib.c params_dup.c
-
SRCS+= cpuid.c ctype.c
.if defined(ASM_aarch64)
SRCS+= arm64cpuid.S armcap.c
@@ -172,9 +63,24 @@ SRCS+= dh_lib.c dh_key.c dh_group_params.c dh_check.c dh_backend.c dh_gen.c \
# crypto/dsa
SRCS+= dsa_sign.c dsa_vrf.c dsa_lib.c dsa_ossl.c dsa_check.c \
- dsa_key.c dsa_backend.c dsa_gen.c
+ dsa_key.c dsa_backend.c dsa_gen.c
# crypto/ec
+SRCS+= ec_lib.c ecp_smpl.c ecp_mont.c ecp_nist.c ec_cvt.c ec_mult.c \
+ ec_curve.c ec_check.c ec_key.c ec_kmeth.c ecx_key.c ec_asn1.c \
+ ec2_smpl.c \
+ ecp_oct.c ec2_oct.c ec_oct.c ecdh_ossl.c \
+ ecdsa_ossl.c ecdsa_sign.c ecdsa_vrf.c curve25519.c \
+ curve448/f_generic.c curve448/scalar.c \
+ curve448/curve448_tables.c curve448/eddsa.c curve448/curve448.c \
+ ec_backend.c ecx_backend.c ecdh_kdf.c curve448/arch_64/f_impl64.c \
+ curve448/arch_32/f_impl32.c
+SRCS+= cryptlib.c params.c params_from_text.c bsearch.c ex_data.c o_str.c \
+ threads_pthread.c threads_none.c initthread.c \
+ context.c sparse_array.c asn1_dsa.c packet.c param_build.c \
+ param_build_set.c der_writer.c threads_lib.c params_dup.c
+
+.include <bsd.opts.mk>
.if ${MACHINE_ABI:Mlittle-endian} && ${MACHINE_ABI:Mlong64}
SRCS+= ecp_nistp224.c ecp_nistp256.c ecp_nistp521.c ecp_nistputil.c
.endif