《OpenSSL3.0学习之二十四 提供程序-object》
来源:http://www.tudoupe.com时间:2022-02-19
?博客首页: 男星的博客
?欢迎关注?点赞?收藏⭐️留言?
❤️ 期待一起交流!
?作者水平很有限,如果发现错误,求告知,多谢!
?有问题可私信交流!!!
文章目录
- ?概要
- ?描述
- ?参数参考
?概要
?描述
提供程序本机对象抽象是一组OSSL_PARAM键和值,可用于将提供程序本机对象传递到 OpenSSL 库代码,或者在 OpenSSL 库代码的帮助下在不同的提供程序操作实现之间传递。
其目的是使某些提供程序本机操作可以传递属于其他操作或 OpenSSL 库代码的任何类型的对象。
可以通过以下方式传递对象:
按值
这意味着对象数据 作为八位字节字符串或 UTF8 字符串传递,其他提供的实现可以以不同的方式处理这些字符串。对象的编码取决于它使用的上下文;例如,== OSSL_DECODER==允许多种编码, 这取决于现有的解码器。如果中央 OpenSSL 库功能是直接处理数据,则必须在 DER 中对所有对象类型进行编码,但OSSL_OBJECT_NAME除外(请参阅下面的" 参数参考 "),其中假定为纯 UTF8 字符串。通过引用
这意味着不会直接传递对象数据,而是传递对象引用。它是一个八位字节字符串,只有正确的提供程序才能正确理解。
按值排序的对象可由处理 DER 编码对象的任何内容使用。
通过引用,对象需要来自对象的实现(我们称之为 X)及其目标实现(我们称之为 Y)的更高级别的协作:
目标实现中的对象加载函数
目标实现 (Y) 可能具有可以采用对象引用的函数。仅当目标实现与发起相关对象抽象的提供程序 (X) 来自同一提供程序时,才能使用此选项。
要使用的确切目标实现是根据对象类型(可能还有对象数据类型)确定的。例如,当 OpenSSL 库接收到对象类型为OSSL_OBJECT_PKEY的对象抽象时,它将使用对象数据类型作为其键类型(EVP_KEYMGMT_fetch中的第二个参数)获取提供程序-keymgmt。
原始实现中的对象导出程序
原始实现 (X) 可能具有导出器函数。此导出器函数可用于以OSSL_PARAM形式导出对象,然后可以通过目标实现的导入函数导入该对象。
当无法从同一提供程序获取目标实现 (Y) 时,可以使用此选项。
?参数参考
提供程序原生对象抽象是一个OSSL_PARAM,其中包含以下参数:
“data” (OSSL_OBJECT_PARAM_DATA) < octet string > or < UTF8 string >
按值传递的对象数据。“reference” (OSSL_OBJECT_PARAM_REFERENCE) < octet string >
通过引用传递的对象数据。“type” (OSSL_OBJECT_PARAM_TYPE) < integer >
对象类型,一个可能具有以下任何值的数字(全部定义在 <openssl/core_object.h> 中):OSSL_OBJECT_NAME
对象数据只能按值传递,并且应为 UTF8 字符串。这对于提供程序-storemgmt很有用 当 URI 加载导致新的 URI 时。
OSSL_OBJECT_PKEY
对象数据适合用作提供程序本机EVP_PKEY键数据。对象数据可以按值传递,也可以按引用传递。OSSL_OBJECT_CERT
对象数据适合用作 X509 数据。此对象类型的对象数据只能按值传递,并且应为八位字节字符串。由于没有提供程序本机 X.509 对象,因此接收此对象抽象的 OpenSSL 库应将数据转换为具有 d2i_X509() 的 X509 对象。
OSSL_OBJECT_CRL
对象数据适合用作X509_CRL数据。对象数据只能按值传递,并且应该是八位字节字符串。由于没有提供程序本机 X.509 CRL 对象,因此接收此对象抽象的 OpenSSL 库应将数据转换为具有 d2i_X509_CRL() X509_CRL对象。
“data-type” (OSSL_OBJECT_PARAM_DATA_TYPE) < UTF8 string >
对象内容的特定类型。合法值取决于对象类型;如果OSSL_OBJECT_PKEY, 则数据类型应为适合获取可以处理数据的提供程序-keymgmt的密钥类型。“data-structure” (OSSL_OBJECT_PARAM_DATA_STRUCTURE) < UTF8 string >
对象内容的最外层结构。合法值取决于对象类型。“desc” (OSSL_OBJECT_PARAM_DESC) < UTF8 string >
描述对象的额外详细信息的人类可读文本。
当使用提供程序本机对象 abtraction 时,它必须包含至少一种形式的对象数据(按值传递的对象数据,即"数据"项,或通过引用传递的对象数据,即"引用"项)。两者可能同时存在,在这种情况下,接收它的OpenSSL库代码将使用最佳变体。
对于对象类型OSSL_OBJECT_NAME的对象,必须指定该对象类型。
相关新闻
- 2023-05-06 微pe怎么初始化U盘(微pe怎么恢复初
- 2023-05-06 Xp系统boot 进入pe(boot manager 怎么进入
- 2023-05-06 win pe修复bcdboot(pe修复系统)
- 2023-05-06 win7更新失败 pe(win7更新失败还原更
- 2023-05-06 u盘装了pe读取不了(u盘能进pe读取不
- 2023-05-06 u盘pe 发热(u盘发热烫手)
- 2023-05-06 u盘pe下看不到硬盘(u盘启动pe看不到
- 2023-05-06 pe盘 ntfs(u盘ntfs格式)
- 2023-05-06 sony笔记本进入pe模式(联想笔记本怎
- 2023-05-06 pe启动盘进不去(pe启动盘进不去系统
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
