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