menuconfig ASYMMETRIC_KEY_TYPE
	bool "Asymmetric (public-key cryptographic) key Support"
	depends on FIT_SIGNATURE
	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
