GNU Linux-libre 5.10.219-gnu1
[releases.git] / crypto / asymmetric_keys / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2 menuconfig 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
11 if ASYMMETRIC_KEY_TYPE
12
13 config 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
25 config 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
37 config 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
47 config 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
57 config 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
66 config 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
76 config 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
88 config 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
99 endif # ASYMMETRIC_KEY_TYPE