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

相关文章

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

java字符串数字补齐位数详解

《java字符串数字补齐位数详解》:本文主要介绍java字符串数字补齐位数,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java字符串数字补齐位数一、使用String.format()方法二、Apache Commons Lang库方法三、Java 11+的St

C++字符串提取和分割的多种方法

《C++字符串提取和分割的多种方法》在C++编程中,字符串处理是一个常见的任务,尤其是在需要从字符串中提取特定数据时,本文将详细探讨如何使用C++标准库中的工具来提取和分割字符串,并分析不同方法的适用... 目录1. 字符串提取的基本方法1.1 使用 std::istringstream 和 >> 操作符示

Python中DataFrame转列表的最全指南

《Python中DataFrame转列表的最全指南》在Python数据分析中,Pandas的DataFrame是最常用的数据结构之一,本文将为你详解5种主流DataFrame转换为列表的方法,大家可以... 目录引言一、基础转换方法解析1. tolist()直接转换法2. values.tolist()矩阵

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

python展开嵌套列表的多种方法

《python展开嵌套列表的多种方法》本文主要介绍了python展开嵌套列表的多种方法,包括for循环、列表推导式和sum函数三种方法,具有一定的参考价值,感兴趣的可以了解一下... 目录一、嵌套列表格式二、嵌套列表展开方法(一)for循环(1)for循环+append()(2)for循环+pyPhWiFd

Python容器类型之列表/字典/元组/集合方式

《Python容器类型之列表/字典/元组/集合方式》:本文主要介绍Python容器类型之列表/字典/元组/集合方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 列表(List) - 有序可变序列1.1 基本特性1.2 核心操作1.3 应用场景2. 字典(D

C语言字符函数和字符串函数示例详解

《C语言字符函数和字符串函数示例详解》本文详细介绍了C语言中字符分类函数、字符转换函数及字符串操作函数的使用方法,并通过示例代码展示了如何实现这些功能,通过这些内容,读者可以深入理解并掌握C语言中的字... 目录一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2st