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

相关推荐
Lazy Dave14 天前
gmssl私钥文件格式
网络安全·ssl·openssl
沉在嵌入式的鱼1 个月前
RK3588移植Openssl库
linux·rk3588·openssl
黑屋里的马1 个月前
ssl相关命令生成证书
服务器·网络·ssl·openssl·gmssl
fangeqin2 个月前
ubuntu源码安装python3.13遇到Could not build the ssl module!解决方法
linux·python·ubuntu·openssl
API开发2 个月前
苹果芯片macOS安装版Homebrew(亲测) ,一键安装node、python、vscode等,比绿色软件还干净、无污染
vscode·python·docker·nodejs·openssl·brew·homebrew
码农不惑2 个月前
Rust使用tokio(二)HTTPS相关
https·rust·web·openssl
liulilittle2 个月前
通过高级处理器硬件指令集AES-NI实现AES-256-CFB算法并通过OPENSSL加密验证算法正确性。
linux·服务器·c++·算法·安全·加密·openssl
liulilittle2 个月前
OpenSSL 的 AES-NI 支持机制
linux·运维·服务器·算法·加密·openssl·解密
liulilittle2 个月前
通过高级处理器硬件指令集AES-NI实现AES-256-CFB算法。
linux·服务器·c++·算法·安全·加密·openssl
花花少年2 个月前
Ubuntu系统下交叉编译openssl
openssl·交叉编译