1# SPDX-License-Identifier: GPL-2.0
2menuconfig ASYMMETRIC_KEY_TYPE
3	bool "Asymmetric (public-key cryptographic) key type"
4	depends on KEYS
5	help
6	  This option provides support for a key type that holds the data for
7	  the asymmetric keys used for public key cryptographic operations such
8	  as encryption, decryption, signature generation and signature
9	  verification.
10
11if ASYMMETRIC_KEY_TYPE
12
13config ASYMMETRIC_PUBLIC_KEY_SUBTYPE
14	tristate "Asymmetric public-key crypto algorithm subtype"
15	select MPILIB
16	select CRYPTO_HASH_INFO
17	select CRYPTO_AKCIPHER
18	select CRYPTO_HASH
19	help
20	  This option provides support for asymmetric public key type handling.
21	  If signature generation and/or verification are to be used,
22	  appropriate hash algorithms (such as SHA-1) must be available.
23	  ENOPKG will be reported if the requisite algorithm is unavailable.
24
25config ASYMMETRIC_TPM_KEY_SUBTYPE
26	tristate "Asymmetric TPM backed private key subtype"
27	depends on TCG_TPM
28	depends on TRUSTED_KEYS
29	select CRYPTO_HMAC
30	select CRYPTO_SHA1
31	select CRYPTO_HASH_INFO
32	help
33	  This option provides support for TPM backed private key type handling.
34	  Operations such as sign, verify, encrypt, decrypt are performed by
35	  the TPM after the private key is loaded.
36
37config X509_CERTIFICATE_PARSER
38	tristate "X.509 certificate parser"
39	depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE
40	select ASN1
41	select OID_REGISTRY
42	help
43	  This option provides support for parsing X.509 format blobs for key
44	  data and provides the ability to instantiate a crypto key from a
45	  public key packet found inside the certificate.
46
47config PKCS8_PRIVATE_KEY_PARSER
48	tristate "PKCS#8 private key parser"
49	depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE
50	select ASN1
51	select OID_REGISTRY
52	help
53	  This option provides support for parsing PKCS#8 format blobs for
54	  private key data and provides the ability to instantiate a crypto key
55	  from that data.
56
57config TPM_KEY_PARSER
58	tristate "TPM private key parser"
59	depends on ASYMMETRIC_TPM_KEY_SUBTYPE
60	select ASN1
61	help
62	  This option provides support for parsing TPM format blobs for
63	  private key data and provides the ability to instantiate a crypto key
64	  from that data.
65
66config PKCS7_MESSAGE_PARSER
67	tristate "PKCS#7 message parser"
68	depends on X509_CERTIFICATE_PARSER
69	select CRYPTO_HASH
70	select ASN1
71	select OID_REGISTRY
72	help
73	  This option provides support for parsing PKCS#7 format messages for
74	  signature data and provides the ability to verify the signature.
75
76config PKCS7_TEST_KEY
77	tristate "PKCS#7 testing key type"
78	depends on SYSTEM_DATA_VERIFICATION
79	help
80	  This option provides a type of key that can be loaded up from a
81	  PKCS#7 message - provided the message is signed by a trusted key.  If
82	  it is, the PKCS#7 wrapper is discarded and reading the key returns
83	  just the payload.  If it isn't, adding the key will fail with an
84	  error.
85
86	  This is intended for testing the PKCS#7 parser.
87
88config SIGNED_PE_FILE_VERIFICATION
89	bool "Support for PE file signature verification"
90	depends on PKCS7_MESSAGE_PARSER=y
91	depends on SYSTEM_DATA_VERIFICATION
92	select CRYPTO_HASH
93	select ASN1
94	select OID_REGISTRY
95	help
96	  This option provides support for verifying the signature(s) on a
97	  signed PE binary.
98
99endif # ASYMMETRIC_KEY_TYPE
100