Kbuild.fips140 1.6 KB

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