menuconfig ASYMMETRIC_KEY_TYPE
	bool "Asymmetric (public-key cryptographic) key Support"
	help
	  This option provides support for a key type that holds the data for
	  the asymmetric keys used for public key cryptographic operations such
	  as encryption, decryption, signature generation and signature
	  verification.

if ASYMMETRIC_KEY_TYPE

config SPL_ASYMMETRIC_KEY_TYPE
	bool "Asymmetric (public-key cryptographic) key Support within SPL"
	depends on SPL
	help
	  This option provides support for a key type that holds the data for
	  the asymmetric keys used for public key cryptographic operations such
	  as encryption, decryption, signature generation and signature
	  verification in the SPL.

config ASYMMETRIC_PUBLIC_KEY_SUBTYPE
	bool "Asymmetric public-key crypto algorithm subtype"
	help
	  This option provides support for asymmetric public key type handling.
	  If signature generation and/or verification are to be used,
	  appropriate hash algorithms (such as SHA-1) must be available.
	  ENOPKG will be reported if the requisite algorithm is unavailable.

config SPL_ASYMMETRIC_PUBLIC_KEY_SUBTYPE
	bool "Asymmetric public-key crypto algorithm subtype within SPL"
	depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE
	help
	  This option provides support for asymmetric public key type handling in the SPL.
	  If signature generation and/or verification are to be used,
	  appropriate hash algorithms (such as SHA-1) must be available.
	  ENOPKG will be reported if the requisite algorithm is unavailable.

config RSA_PUBLIC_KEY_PARSER
	bool "RSA public key parser"
	depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE
	select ASN1_DECODER
	select ASN1_COMPILER
	select OID_REGISTRY
	help
	  This option provides support for parsing a blob containing RSA
	  public key data and provides the ability to instantiate a public
	  key.

config SPL_RSA_PUBLIC_KEY_PARSER
	bool "RSA public key parser within SPL"
	depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE
	select SPL_ASN1_DECODER
	select ASN1_COMPILER
	select SPL_OID_REGISTRY
	help
	  This option provides support for parsing a blob containing RSA
	  public key data and provides the ability to instantiate a public
	  key in the SPL.

config X509_CERTIFICATE_PARSER
	bool "X.509 certificate parser"
	depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE
	select ASN1_DECODER
	select ASN1_COMPILER
	select OID_REGISTRY
	select LIB_DATE
	help
	  This option provides support for parsing X.509 format blobs for key
	  data and provides the ability to instantiate a crypto key from a
	  public key packet found inside the certificate.

config PKCS7_MESSAGE_PARSER
	bool "PKCS#7 message parser"
	depends on X509_CERTIFICATE_PARSER
	select ASN1_DECODER
	select ASN1_COMPILER
	select OID_REGISTRY
	help
	  This option provides support for parsing PKCS#7 format messages for
	  signature data and provides the ability to verify the signature.

config PKCS7_VERIFY
	bool

endif # ASYMMETRIC_KEY_TYPE
