1# SPDX-License-Identifier: GPL-2.0
2#
3# Makefile for asymmetric cryptographic keys
4#
5
6obj-$(CONFIG_ASYMMETRIC_KEY_TYPE) += asymmetric_keys.o
7
8asymmetric_keys-y := \
9	asymmetric_type.o \
10	restrict.o \
11	signature.o
12
13obj-$(CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE) += public_key.o
14obj-$(CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE) += asym_tpm.o
15
16#
17# X.509 Certificate handling
18#
19obj-$(CONFIG_X509_CERTIFICATE_PARSER) += x509_key_parser.o
20x509_key_parser-y := \
21	x509.asn1.o \
22	x509_akid.asn1.o \
23	x509_cert_parser.o \
24	x509_public_key.o
25
26$(obj)/x509_cert_parser.o: \
27	$(obj)/x509.asn1.h \
28	$(obj)/x509_akid.asn1.h
29
30$(obj)/x509.asn1.o: $(obj)/x509.asn1.c $(obj)/x509.asn1.h
31$(obj)/x509_akid.asn1.o: $(obj)/x509_akid.asn1.c $(obj)/x509_akid.asn1.h
32
33#
34# PKCS#8 private key handling
35#
36obj-$(CONFIG_PKCS8_PRIVATE_KEY_PARSER) += pkcs8_key_parser.o
37pkcs8_key_parser-y := \
38	pkcs8.asn1.o \
39	pkcs8_parser.o
40
41$(obj)/pkcs8_parser.o: $(obj)/pkcs8.asn1.h
42$(obj)/pkcs8-asn1.o: $(obj)/pkcs8.asn1.c $(obj)/pkcs8.asn1.h
43
44clean-files	+= pkcs8.asn1.c pkcs8.asn1.h
45
46#
47# PKCS#7 message handling
48#
49obj-$(CONFIG_PKCS7_MESSAGE_PARSER) += pkcs7_message.o
50pkcs7_message-y := \
51	pkcs7.asn1.o \
52	pkcs7_parser.o \
53	pkcs7_trust.o \
54	pkcs7_verify.o
55
56$(obj)/pkcs7_parser.o: $(obj)/pkcs7.asn1.h
57$(obj)/pkcs7.asn1.o: $(obj)/pkcs7.asn1.c $(obj)/pkcs7.asn1.h
58
59#
60# PKCS#7 parser testing key
61#
62obj-$(CONFIG_PKCS7_TEST_KEY) += pkcs7_test_key.o
63pkcs7_test_key-y := \
64	pkcs7_key_type.o
65
66#
67# Signed PE binary-wrapped key handling
68#
69obj-$(CONFIG_SIGNED_PE_FILE_VERIFICATION) += verify_signed_pefile.o
70
71verify_signed_pefile-y := \
72	verify_pefile.o \
73	mscode_parser.o \
74	mscode.asn1.o
75
76$(obj)/mscode_parser.o: $(obj)/mscode.asn1.h $(obj)/mscode.asn1.h
77$(obj)/mscode.asn1.o: $(obj)/mscode.asn1.c $(obj)/mscode.asn1.h
78
79#
80# TPM private key parsing
81#
82obj-$(CONFIG_TPM_KEY_PARSER) += tpm_key_parser.o
83tpm_key_parser-y := \
84	tpm.asn1.o \
85	tpm_parser.o
86
87$(obj)/tpm_parser.o: $(obj)/tpm.asn1.h
88$(obj)/tpm.asn1.o: $(obj)/tpm.asn1.c $(obj)/tpm.asn1.h
89