openssl3.2 - xx_fetch函数参数名称字符串有效值列表

文章目录

    • [openssl3.2 - xx_fetch函数参数名称字符串有效值列表](#openssl3.2 - xx_fetch函数参数名称字符串有效值列表)
    • 概述
    • 笔记
    • xx_fetch函数所在的头文件目录
    • xx_fetch函数所在的头文件列表
    • xx_fetch函数列表
    • 每个xx_fetch()API的字符串名称的有效值列表
    • [OSSL_DECODER *OSSL_DECODER_fetch();](#OSSL_DECODER *OSSL_DECODER_fetch();)
    • [OSSL_ENCODER *OSSL_ENCODER_fetch();](#OSSL_ENCODER *OSSL_ENCODER_fetch();)
    • [EVP_CIPHER *EVP_CIPHER_fetch();](#EVP_CIPHER *EVP_CIPHER_fetch();)
    • [__owur EVP_MD *EVP_MD_fetch();](#__owur EVP_MD *EVP_MD_fetch();)
    • [EVP_MAC *EVP_MAC_fetch();](#EVP_MAC *EVP_MAC_fetch();)
    • [EVP_RAND *EVP_RAND_fetch();](#EVP_RAND *EVP_RAND_fetch();)
    • [EVP_KEYMGMT *EVP_KEYMGMT_fetch();](#EVP_KEYMGMT *EVP_KEYMGMT_fetch();)
    • [EVP_SIGNATURE *EVP_SIGNATURE_fetch();](#EVP_SIGNATURE *EVP_SIGNATURE_fetch();)
    • [EVP_ASYM_CIPHER *EVP_ASYM_CIPHER_fetch();](#EVP_ASYM_CIPHER *EVP_ASYM_CIPHER_fetch();)
    • [EVP_KEM *EVP_KEM_fetch();](#EVP_KEM *EVP_KEM_fetch();)
    • [EVP_KEYEXCH *EVP_KEYEXCH_fetch();](#EVP_KEYEXCH *EVP_KEYEXCH_fetch();)
    • [EVP_KEYMGMT *evp_keymgmt_fetch_from_prov();](#EVP_KEYMGMT *evp_keymgmt_fetch_from_prov();)
    • [void *evp_generic_fetch();](#void *evp_generic_fetch();)
    • [void *evp_generic_fetch_from_prov();](#void *evp_generic_fetch_from_prov();)
    • [EVP_KEYMGMT *evp_keymgmt_fetch_by_number();](#EVP_KEYMGMT *evp_keymgmt_fetch_by_number();)
    • [EVP_SIGNATURE *evp_signature_fetch_from_prov();](#EVP_SIGNATURE *evp_signature_fetch_from_prov();)
    • [EVP_ASYM_CIPHER *evp_asym_cipher_fetch_from_prov();](#EVP_ASYM_CIPHER *evp_asym_cipher_fetch_from_prov();)
    • [EVP_KEYEXCH *evp_keyexch_fetch_from_prov();](#EVP_KEYEXCH *evp_keyexch_fetch_from_prov();)
    • [EVP_KEM *evp_kem_fetch_from_prov();](#EVP_KEM *evp_kem_fetch_from_prov();)
    • [EVP_KDF *EVP_KDF_fetch();](#EVP_KDF *EVP_KDF_fetch();)
    • [int ossl_method_store_fetch();](#int ossl_method_store_fetch();)
    • [const EVP_MD *ossl_prov_digest_fetch();](#const EVP_MD *ossl_prov_digest_fetch();)
    • [const EVP_CIPHER *ssl_evp_cipher_fetch();](#const EVP_CIPHER *ssl_evp_cipher_fetch();)
    • [const EVP_MD *ssl_evp_md_fetch();](#const EVP_MD *ssl_evp_md_fetch();)
    • [OSSL_STORE_LOADER *OSSL_STORE_LOADER_fetch();](#OSSL_STORE_LOADER *OSSL_STORE_LOADER_fetch();)
    • [OSSL_STORE_LOADER *ossl_store_loader_fetch();](#OSSL_STORE_LOADER *ossl_store_loader_fetch();)
    • [openssl中还有一种根据name取任务指针的函数 - xx_from_name()](#openssl中还有一种根据name取任务指针的函数 - xx_from_name())
    • ossl_ec_set_check_group_type_from_name()
    • EVP_PKEY_CTX_new_from_name()
    • END

openssl3.2 - xx_fetch函数参数名称字符串有效值列表

概述

openssl3.2中有很多 xx_fetch API, 用字符串名称来找openssl任务的指针.

因为参数是字符串名称, 如果是新手, 就不知道这些字符串该怎么写, 如果没有研究方法, 只能是看见官方和第三方工程写什么, 我们就写什么.

但是, 如果要用到的字符串名称和官方的不一样, 这时候, 就需要自己研究. 否则, 字符串写错, 是得不到openssl任务指针的.

前面我发现这个问题, 已经将EVP_MD_fetch(), EVP_CIPHER_fetch()的字符串名称参数有效值列表搞出来了.

这几天又陆续在官方demo中看到, 有xx_fetch()的API, 看来官方就是推荐用任务名称来找任务指针.

今天搜了一下, 将 xx_fetch()函数都列出来, 等有时间时, 将这些API参数中的字符串名称有效值列表都整理出来

笔记

xx_fetch函数所在的头文件目录

include\openssl

crypto\evp

include\internal

providers\common\include\prov

ssl

crypto\store
安装好(给openssl外部应用 用的API)的openssl目录只有 include\openssl

其他目录, 只有openssl工具(openssl.exe)或内部测试程序才用.

xx_fetch函数所在的头文件列表

decoder.h (include\openssl)

encoder.h (include\openssl)

evp.h (include\openssl)

evp_local.h (crypto\evp)

kdf.h (include\openssl)

property.h (include\internal)

provider_util.h (providers\common\include\prov)

ssl_local.h (ssl)

store.h (include\openssl)

store_local.h (crypto\store)

xx_fetch函数列表

OSSL_DECODER *OSSL_DECODER_fetch(OSSL_LIB_CTX *libctx, const char *name, const char *properties);

OSSL_ENCODER *OSSL_ENCODER_fetch(OSSL_LIB_CTX *libctx, const char *name, const char *properties);

EVP_CIPHER *EVP_CIPHER_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, const char *properties);

__owur EVP_MD *EVP_MD_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, const char *properties);

EVP_MAC *EVP_MAC_fetch(OSSL_LIB_CTX *libctx, const char *algorithm, const char *properties);

EVP_RAND *EVP_RAND_fetch(OSSL_LIB_CTX *libctx, const char *algorithm, const char *properties);

EVP_KEYMGMT *EVP_KEYMGMT_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, const char *properties);

EVP_SIGNATURE *EVP_SIGNATURE_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, const char *properties);

EVP_ASYM_CIPHER *EVP_ASYM_CIPHER_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, const char *properties);

EVP_KEM *EVP_KEM_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, const char *properties);

EVP_KEYEXCH *EVP_KEYEXCH_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, const char *properties);

EVP_KEYMGMT *evp_keymgmt_fetch_from_prov(OSSL_PROVIDER *prov, const char *name, const char *properties);

void *evp_generic_fetch(OSSL_LIB_CTX *ctx, int operation_id,

const char *name, const char *properties,

void *(*new_method)(int name_id,

const OSSL_ALGORITHM *algodef,

OSSL_PROVIDER *prov),

int (*up_ref_method)(void *),

void (*free_method)(void *));

void *evp_generic_fetch_from_prov(OSSL_PROVIDER *prov, int operation_id,

const char *name, const char *properties,

void *(*new_method)(int name_id,

const OSSL_ALGORITHM *algodef,

OSSL_PROVIDER *prov),

int (*up_ref_method)(void *),

void (*free_method)(void *));

EVP_KEYMGMT *evp_keymgmt_fetch_by_number(OSSL_LIB_CTX *ctx, int name_id,

const char *properties);

EVP_SIGNATURE *evp_signature_fetch_from_prov(OSSL_PROVIDER *prov,

const char *name,

const char *properties);

EVP_ASYM_CIPHER *evp_asym_cipher_fetch_from_prov(OSSL_PROVIDER *prov,

const char *name,

const char *properties);

EVP_KEYEXCH *evp_keyexch_fetch_from_prov(OSSL_PROVIDER *prov,

const char *name,

const char *properties);

EVP_KEM *evp_kem_fetch_from_prov(OSSL_PROVIDER *prov,

const char *name,

const char *properties);

EVP_KDF *EVP_KDF_fetch(OSSL_LIB_CTX *libctx, const char *algorithm,

const char *properties);

int ossl_method_store_fetch(OSSL_METHOD_STORE *store,

int nid, const char *prop_query,

const OSSL_PROVIDER **prov, void **method);

const EVP_MD *ossl_prov_digest_fetch(PROV_DIGEST *pd, OSSL_LIB_CTX *libctx,

const char *mdname, const char *propquery);

const EVP_CIPHER *ssl_evp_cipher_fetch(OSSL_LIB_CTX *libctx,

int nid,

const char *properties);

const EVP_MD *ssl_evp_md_fetch(OSSL_LIB_CTX *libctx,

int nid,

const char *properties);

OSSL_STORE_LOADER *OSSL_STORE_LOADER_fetch(OSSL_LIB_CTX *libctx,

const char *scheme,

const char *properties);

OSSL_STORE_LOADER *ossl_store_loader_fetch(OSSL_LIB_CTX *libctx,

const char *scheme,

const char *properties);

xx_fetch的数量为26个

每个xx_fetch()API的字符串名称的有效值列表

找每个xx_fetch()函数的参数字符串名称有效值时, 都有附带的头文件定义, 具体的有效值整理.

在一个笔记中写全是不可能的. 这个笔记作为一个索引贴, 给出其他具体xx_fetch()的有效值笔记.

我现在才搞清楚2个, 以后慢慢来填坑.

OSSL_DECODER *OSSL_DECODER_fetch();

\todo

OSSL_ENCODER *OSSL_ENCODER_fetch();

\todo

EVP_CIPHER *EVP_CIPHER_fetch();

openssl3.2 - EVP_CIPHER_fetch算法名称字符串(参数2)的有效值列表

__owur EVP_MD *EVP_MD_fetch();

openssl3.2 - EVP_MD_fetch算法名称字符串(参数2)的有效值列表

EVP_MAC *EVP_MAC_fetch();

\todo

EVP_RAND *EVP_RAND_fetch();

\todo

EVP_KEYMGMT *EVP_KEYMGMT_fetch();

\todo

EVP_SIGNATURE *EVP_SIGNATURE_fetch();

\todo

EVP_ASYM_CIPHER *EVP_ASYM_CIPHER_fetch();

\todo

EVP_KEM *EVP_KEM_fetch();

\todo

EVP_KEYEXCH *EVP_KEYEXCH_fetch();

\todo

EVP_KEYMGMT *evp_keymgmt_fetch_from_prov();

\todo

void *evp_generic_fetch();

\todo

void *evp_generic_fetch_from_prov();

\todo

EVP_KEYMGMT *evp_keymgmt_fetch_by_number();

\todo

EVP_SIGNATURE *evp_signature_fetch_from_prov();

\todo

EVP_ASYM_CIPHER *evp_asym_cipher_fetch_from_prov();

\todo

EVP_KEYEXCH *evp_keyexch_fetch_from_prov();

\todo

EVP_KEM *evp_kem_fetch_from_prov();

\todo

EVP_KDF *EVP_KDF_fetch();

\todo

int ossl_method_store_fetch();

\todo

const EVP_MD *ossl_prov_digest_fetch();

\todo

const EVP_CIPHER *ssl_evp_cipher_fetch();

\todo

const EVP_MD *ssl_evp_md_fetch();

\todo

OSSL_STORE_LOADER *OSSL_STORE_LOADER_fetch();

\todo

OSSL_STORE_LOADER *ossl_store_loader_fetch();

\todo

openssl中还有一种根据name取任务指针的函数 - xx_from_name()

这种函数比较少, 一共2个.

ec.h (include\crypto) int ossl_ec_set_check_group_type_from_name(EC_KEY *ec, const char *name);

evp.h (include\openssl) EVP_PKEY_CTX *EVP_PKEY_CTX_new_from_name(OSSL_LIB_CTX *libctx,const char *name, const char *propquery);

ossl_ec_set_check_group_type_from_name()

\todo

EVP_PKEY_CTX_new_from_name()

\todo

END

相关推荐
cooldream20092 天前
升级 OpenSSL 的详细步骤(解决 SSH 漏洞的前提)
运维·ssh·openssl
年薪丰厚2 天前
如何手动安装libcrypto.so.10和libssl.so.10这两个库?
openssl·libcrypto.so.10·libssl.so.10
恋喵大鲤鱼15 天前
openssl(1) command
openssl
pzs022118 天前
openssl的使用
openssl
小亦小亦_空中接力20 天前
openssl+keepalived安装部署
openssl·keepalived
摸鱼手会滑22 天前
源码编译安装python3.12没有ssl模块,python3.12 ModuleNotFoundError: No module named ‘_ssl‘
ssl·openssl·python3
老朱自强不息1 个月前
Windows 平台编译openssl3.3
windows·openssl
promise5242 个月前
openssl 详解
linux·运维·服务器·网络协议·安全·https·openssl
俱会一处2 个月前
用openssl 创建自签名证书用于内网HTTPS
https·openssl·内网·局域网
xiaogengtongxu2 个月前
CA证书和openssl介绍
网络·安全·openssl