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