1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Create a separate FIPS archive that duplicates the modules that are relevant 4*4882a593Smuzhiyun# for FIPS 140 certification as builtin objects 5*4882a593Smuzhiyun# 6*4882a593Smuzhiyun 7*4882a593Smuzhiyunsha1-ce-y := sha1-ce-glue.o sha1-ce-core.o 8*4882a593Smuzhiyunsha2-ce-y := sha2-ce-glue.o sha2-ce-core.o 9*4882a593Smuzhiyunsha512-ce-y := sha512-ce-glue.o sha512-ce-core.o 10*4882a593Smuzhiyunghash-ce-y := ghash-ce-glue.o ghash-ce-core.o 11*4882a593Smuzhiyunaes-ce-cipher-y := aes-ce-core.o aes-ce-glue.o 12*4882a593Smuzhiyunaes-ce-blk-y := aes-glue-ce.o aes-ce.o 13*4882a593Smuzhiyunaes-neon-blk-y := aes-glue-neon.o aes-neon.o 14*4882a593Smuzhiyunsha256-arm64-y := sha256-glue.o sha256-core.o 15*4882a593Smuzhiyunsha512-arm64-y := sha512-glue.o sha512-core.o 16*4882a593Smuzhiyunaes-arm64-y := aes-cipher-core.o aes-cipher-glue.o 17*4882a593Smuzhiyunaes-neon-bs-y := aes-neonbs-core.o aes-neonbs-glue.o 18*4882a593Smuzhiyun 19*4882a593Smuzhiyuncrypto-arm64-fips-src := $(srctree)/arch/arm64/crypto/ 20*4882a593Smuzhiyuncrypto-arm64-fips-modules := sha1-ce.o sha2-ce.o sha512-ce.o ghash-ce.o \ 21*4882a593Smuzhiyun aes-ce-cipher.o aes-ce-blk.o aes-neon-blk.o \ 22*4882a593Smuzhiyun sha256-arm64.o sha512-arm64.o aes-arm64.o \ 23*4882a593Smuzhiyun aes-neon-bs.o 24*4882a593Smuzhiyun 25*4882a593Smuzhiyuncrypto-fips-objs += $(foreach o,$(crypto-arm64-fips-modules),$($(o:.o=-y):.o=-fips-arch.o)) 26*4882a593Smuzhiyun 27*4882a593SmuzhiyunCFLAGS_aes-glue-ce-fips-arch.o := -DUSE_V8_CRYPTO_EXTENSIONS 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun$(obj)/aes-glue-%-fips-arch.o: KBUILD_CFLAGS += $(FIPS140_CFLAGS) 30*4882a593Smuzhiyun$(obj)/aes-glue-%-fips-arch.o: $(crypto-arm64-fips-src)/aes-glue.c FORCE 31*4882a593Smuzhiyun $(call if_changed_rule,cc_o_c) 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun$(obj)/%-fips-arch.o: KBUILD_CFLAGS += $(FIPS140_CFLAGS) 34*4882a593Smuzhiyun$(obj)/%-fips-arch.o: $(crypto-arm64-fips-src)/%.c FORCE 35*4882a593Smuzhiyun $(call if_changed_rule,cc_o_c) 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun$(obj)/%-fips-arch.o: $(crypto-arm64-fips-src)/%.S FORCE 38*4882a593Smuzhiyun $(call if_changed_rule,as_o_S) 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun$(obj)/%: $(crypto-arm64-fips-src)/%_shipped 41*4882a593Smuzhiyun $(call cmd,shipped) 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun$(obj)/%-fips-arch.o: $(obj)/%.S FORCE 44*4882a593Smuzhiyun $(call if_changed_rule,as_o_S) 45