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_ENCODER *OSSL_ENCODER_fetch();
    • EVP_CIPHER *EVP_CIPHER_fetch();
    • __owur EVP_MD *EVP_MD_fetch();
    • EVP_MAC *EVP_MAC_fetch();
    • EVP_RAND *EVP_RAND_fetch();
    • EVP_KEYMGMT *EVP_KEYMGMT_fetch();
    • EVP_SIGNATURE *EVP_SIGNATURE_fetch();
    • EVP_ASYM_CIPHER *EVP_ASYM_CIPHER_fetch();
    • EVP_KEM *EVP_KEM_fetch();
    • EVP_KEYEXCH *EVP_KEYEXCH_fetch();
    • EVP_KEYMGMT *evp_keymgmt_fetch_from_prov();
    • void *evp_generic_fetch();
    • void *evp_generic_fetch_from_prov();
    • EVP_KEYMGMT *evp_keymgmt_fetch_by_number();
    • EVP_SIGNATURE *evp_signature_fetch_from_prov();
    • EVP_ASYM_CIPHER *evp_asym_cipher_fetch_from_prov();
    • EVP_KEYEXCH *evp_keyexch_fetch_from_prov();
    • EVP_KEM *evp_kem_fetch_from_prov();
    • EVP_KDF *EVP_KDF_fetch();
    • int ossl_method_store_fetch();
    • const EVP_MD *ossl_prov_digest_fetch();
    • const EVP_CIPHER *ssl_evp_cipher_fetch();
    • const EVP_MD *ssl_evp_md_fetch();
    • OSSL_STORE_LOADER *OSSL_STORE_LOADER_fetch();
    • OSSL_STORE_LOADER *ossl_store_loader_fetch();
    • 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

这篇关于openssl3.2 - xx_fetch函数参数名称字符串有效值列表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/616685

相关文章

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

Python中合并列表(list)的六种方法小结

《Python中合并列表(list)的六种方法小结》本文主要介绍了Python中合并列表(list)的六种方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、直接用 + 合并列表二、用 extend() js方法三、用 zip() 函数交叉合并四、用

javascript fetch 用法讲解

《javascriptfetch用法讲解》fetch是一个现代化的JavaScriptAPI,用于发送网络请求并获取资源,它是浏览器提供的全局方法,可以替代传统的XMLHttpRequest,这篇... 目录1. 基本语法1.1 语法1.2 示例:简单 GET 请求2. Response 对象3. 配置请求

golang float和科学计数法转字符串的实现方式

《golangfloat和科学计数法转字符串的实现方式》:本文主要介绍golangfloat和科学计数法转字符串的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望... 目录golang float和科学计数法转字符串需要对float转字符串做处理总结golang float

Python如何判断字符串中是否包含特殊字符并替换

《Python如何判断字符串中是否包含特殊字符并替换》这篇文章主要为大家详细介绍了如何使用Python实现判断字符串中是否包含特殊字符并使用空字符串替换掉,文中的示例代码讲解详细,感兴趣的小伙伴可以了... 目录python判断字符串中是否包含特殊字符方法一:使用正则表达式方法二:手动检查特定字符Pytho

Spring Boot中的YML配置列表及应用小结

《SpringBoot中的YML配置列表及应用小结》在SpringBoot中使用YAML进行列表的配置不仅简洁明了,还能提高代码的可读性和可维护性,:本文主要介绍SpringBoot中的YML配... 目录YAML列表的基础语法在Spring Boot中的应用从YAML读取列表列表中的复杂对象其他注意事项总

MySQL 字符串截取函数及用法详解

《MySQL字符串截取函数及用法详解》在MySQL中,字符串截取是常见的操作,主要用于从字符串中提取特定部分,MySQL提供了多种函数来实现这一功能,包括LEFT()、RIGHT()、SUBST... 目录mysql 字符串截取函数详解RIGHT(str, length):从右侧截取指定长度的字符SUBST

Python将字符串转换为小写字母的几种常用方法

《Python将字符串转换为小写字母的几种常用方法》:本文主要介绍Python中将字符串大写字母转小写的四种方法:lower()方法简洁高效,手动ASCII转换灵活可控,str.translate... 目录一、使用内置方法 lower()(最简单)二、手动遍历 + ASCII 码转换三、使用 str.tr

Java如何用乘号来重复字符串的功能

《Java如何用乘号来重复字符串的功能》:本文主要介绍Java使用乘号来重复字符串的功能,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java乘号来重复字符串的功能1、利用循环2、使用StringBuilder3、采用 Java 11 引入的String.rep