EVP_PKEY_ASN1_GET_COUNT(3ossl)

πŸ“¦
version 15.1 Β· 2 versions
, in freebsd 15.1

πŸ’… EVP_PKEY_ASN1_GET_COUNT β€” the ossl girlies' guide to enum'ing public key ASN.1 methods ✨

okay so bestie, this is the OpenSSL 3ossl page for EVP_PKEY_ASN1_GET_COUNT(3ossl) and it's literally a whole tour of the public key ASN.1 method collection. grab a matcha, we're going in πŸ“


πŸŽ€ NAME πŸŽ€

EVP_PKEY_asn1_find, EVP_PKEY_asn1_find_str, EVP_PKEY_asn1_get_count, EVP_PKEY_asn1_get0, EVP_PKEY_asn1_get0_info β€” the icons that enumerate public key ASN.1 methods. periodt, that's the whole job πŸ‘‘


✨ 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_asn1_find(ENGINE **pe, int type);
const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe,
                                                   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 🌸

okay so first up, EVP_PKEY_asn1_count() returns a count of the number of public key ASN.1 methods available β€” and it's highkey inclusive, like, it includes the standard methods and any methods added by the application. we love an expanding roster πŸ’–

EVP_PKEY_asn1_get0() returns the public key ASN.1 method idx. the value of idx must be between zero and EVP_PKEY_asn1_get_count() - 1. no skipping past the end bestie, that's not the vibe πŸ™ˆ

EVP_PKEY_asn1_find() looks up the EVP_PKEY_ASN1_METHOD with NID type. if pe isn't NULL, then it will look up an engine implementing a EVP_PKEY_ASN1_METHOD for the NID type and return that instead β€” and it also sets *pe to point at the engine that implements it. so it's giving "found the main character and also told you who their manager is" πŸ’…

EVP_PKEY_asn1_find_str() looks up the EVP_PKEY_ASN1_METHOD with PEM type string str. just like EVP_PKEY_asn1_find(), if pe isn't NULL, then it will look up an engine implementing a EVP_PKEY_ASN1_METHOD for the NID type and return that instead, and also set *pe to point at the engine that implements it. same energy, different lookup key, we love consistency πŸ”₯

EVP_PKEY_asn1_get0_info() returns the public key ID, base public key ID (both NIDs), any flags, the method description and PEM type string associated with the public key ASN.1 method *ameth. it's the full info dump, the whole ~aesthetic~ of one method ✨

⚠️ heads up bestie: EVP_PKEY_asn1_count(), EVP_PKEY_asn1_get0(), EVP_PKEY_asn1_find() and EVP_PKEY_asn1_find_str() are not thread safe β€” but as long as all EVP_PKEY_ASN1_METHOD objects are added before the application gets threaded, using them is safe. see EVP_PKEY_asn1_add0(3). so, do your adding early like a responsible queen 🫢

πŸ’€ RETURN VALUES πŸ’€

  • EVP_PKEY_asn1_count() returns the number of available public key methods. a number. slay πŸ’œ
  • EVP_PKEY_asn1_get0() return a public key method or NULL if idx is out of range. out of range = no method for you 😭
  • EVP_PKEY_asn1_get0_info() returns 0 on failure, 1 on success. classic binary blessing 🌈

πŸ¦‹ SEE ALSO πŸ¦‹

go read those too, iykyk 🧚


Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.


and that's the whole page bestie πŸŽ€πŸ’–βœ¨ β€” brought to you by OpenSSL 3.5.6, dated 2026-04-07, filed under the ossl manual name and the very iconic title EVP_PKEY_ASN1_GET_COUNT(3ossl). go forth and enumerate responsibly πŸ’…πŸ«ΆπŸŒŸ

πŸ“¦ where this page comes from