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