Scroll to navigation

EVP_PKEY_ASN1_GET_COUNT(3) Library Functions Manual EVP_PKEY_ASN1_GET_COUNT(3)

NAME

EVP_PKEY_asn1_get_count, EVP_PKEY_asn1_get0, EVP_PKEY_get0_asn1, EVP_PKEY_asn1_find, EVP_PKEY_asn1_find_str, EVP_PKEY_asn1_get0_infoenumerate public key ASN.1 methods

SYNOPSIS

#include <openssl/evp.h>

int
EVP_PKEY_asn1_get_count(void);

const EVP_PKEY_ASN1_METHOD *
EVP_PKEY_asn1_get0(int idx);

const EVP_PKEY_ASN1_METHOD *
EVP_PKEY_get0_asn1(const EVP_PKEY *pkey);

const EVP_PKEY_ASN1_METHOD *
EVP_PKEY_asn1_find(ENGINE **engine, int type);

const EVP_PKEY_ASN1_METHOD *
EVP_PKEY_asn1_find_str(ENGINE **engine, const char *str, int len);

int
EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, int *ppkey_flags, const char **pinfo, const char **ppem_str, const EVP_PKEY_ASN1_METHOD *ameth);

DESCRIPTION

() returns the number of public key ASN.1 methods available.

() returns the public key ASN.1 method idx. The value of idx must be in the range from zero to EVP_PKEY_asn1_get_count() - 1.

() looks up the method with NID type, which can be any of the values that EVP_PKEY_base_id(3) and EVP_PKEY_id(3) may return. If engine is not NULL, *engine is set to NULL.

() looks up the method with the PEM type string given by the first len bytes of str. If len is -1, the strlen(3) of str is used instead. The PEM type strings supported by default are listed in the EVP_PKEY_base_id(3) manual page. Just like EVP_PKEY_asn1_find(), if engine is not NULL, *engine is set to NULL.

() retrieves the public key ID as returned by EVP_PKEY_id(3), the base public key ID as returned by EVP_PKEY_base_id(3) (both NIDs), any flags, and internal pointers owned by ameth pointing to its method description string and its PEM type string.

The following flags bits can occur, OR'ed together in *ppkey_flags:

This ameth object serves as an alias for another EVP_PKEY_ASN1_METHOD object and will never be returned from () or EVP_PKEY_asn1_find_str().
This ameth object is marked as dynamically allocated. If this flag is set, EVP_PKEY_asn1_free(3) can free ameth; otherwise, EVP_PKEY_asn1_free(3) has no effect on it.
If the signing ctx uses an EVP_PKEY private key associated with this ameth, instruct ASN1_item_sign_ctx(3) to use a parameter type of V_ASN1_NULL instead of the default V_ASN1_UNDEF when encoding the ASN.1 AlgorithmIdentifier objects with X509_ALGOR_set0(3). In particular, this is used for EVP_PKEY_RSA.

RETURN VALUES

EVP_PKEY_asn1_get_count() returns the number of available public key methods.

EVP_PKEY_asn1_get0() returns a public key method or NULL if idx is out of range.

EVP_PKEY_get0_asn1() returns the public key method used by pkey.

EVP_PKEY_asn1_find() and EVP_PKEY_asn1_find_str() return a matching public key method or NULL if no match is found.

EVP_PKEY_asn1_get0_info() returns 1 on success or 0 on failure.

SEE ALSO

EVP_PKEY_asn1_new(3), EVP_PKEY_base_id(3), EVP_PKEY_new(3)

HISTORY

These functions first appeared in OpenSSL 1.0.0 and have been available since OpenBSD 4.9.

July 21, 2024 Linux 6.4.0-150600.23.25-default