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