openssl3.2 - note - Decoders and Encoders with OpenSSL

文章目录

    • openssl3.2 - note - Decoders and Encoders with OpenSSL
    • 概述
    • 笔记
    • 编码器/解码器的调用链
      • OSSL_STORE
    • 编码器/解码器的名称和属性
    • OSSL_FUNC_decoder_freectx_fn
    • OSSL_FUNC_encoder_encode_fn
    • 官方文档
    • END

openssl3.2 - note - Decoders and Encoders with OpenSSL

概述

看了官方文档 Decoders and Encoders with OpenSSL, 做个笔记

笔记

解码器 - 将openssl对象的数据转换为用户面向字节的数据
编码器 - 将用户面向字节的数据转换为openssl对象数据.

编码器和解码器都要创建上下文, 才能使用.

OSSL_DECODER_CTX *OSSL_DECODER_CTX_new(void);OSSL_DECODER_CTX *
OSSL_DECODER_CTX_new_for_pkey(EVP_PKEY **pkey,const char *input_type,const char *input_structure,const char *keytype, int selection,OSSL_LIB_CTX *libctx, const char *propquery);OSSL_ENCODER_CTX *OSSL_ENCODER_CTX_new(void);
OSSL_ENCODER_CTX *OSSL_ENCODER_CTX_new_for_pkey(const EVP_PKEY *pkey,int selection,const char *output_type,const char *output_struct,const char *propquery);

解码器状态

  • 如果能识别输入的数据格式, 进入下一个解码器.
  • 如果不能识别输入的数据格式, 重新定位到输入数据头部, 尝试用剩下的解码器来解码.
  • 如果读取字节输入时发生致命错误, 就退出处理.

编码器状态
编码器比解码器更具确定性. 只有成功,失败2种状态.

OSSL_PARAM
如果要读写什么内容, 干什么活, 都通过相关接口设置 OSSL_PARAM(没找到官方例子代码, 参数设置都没用OSSL_PARAM; 但是在EVP_PKEY的实现, 能看到需要对上下文设置OSSL_PARAM)

编码器/解码器的调用链

在这里插入图片描述

OSSL_STORE

针对输入的数据, 生成一个回溯解码器的链条(即使数据是未知的).
这样就可以用已知的解码器自动去尝试解码用户(或对象带的附加数据)的输入.
如果回溯解码器链条上的所有解码器都处理不了(不认识)输入的数据, 才失败.

编码器/解码器的名称和属性

每个编码器和解码器都有确定的名称和属性, 表明编码/解码器的功能/输入/输出.

OSSL_FUNC_decoder_freectx_fn

OSSL_FUNC_decoder_freectx_fn是解码器函数类型.
没看到谁给openssl的解码器赋值…

OSSL_FUNC_encoder_encode_fn

OSSL_FUNC_encoder_encode_fn是编码器函数类型
编码器的赋值都是用宏来弄的

// e.g. below
MAKE_BLOB_ENCODER(ec, ec, PUBLIC_KEY);

官方文档

file:///D:/3rd_prj/crypt/openssl-3.2.0/doc/html/man7/provider-decoder.html
file:///D:/3rd_prj/crypt/openssl-3.2.0/doc/html/man7/provider-encoder.html
file:///D:/3rd_prj/crypt/openssl-3.2.0/doc/html/man7/provider-object.html

END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/746578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js-循环返回多条数据,每条数据文本超过三行进行展开与收起的实现

1.基本需求 返回多条数据,每条数据在一定宽度的盒子内,文本超过三行进行文本的展开与收起 2.实现逻辑 对于返回的每条数据添加属性expend:false来在循环中进行对于展开收起的判断。 动态计算盒子宽度随着分辨率的变化而变化的值boxWidth。获…

基于单片机的智能环境监测系统

摘 要 本设计主要由温湿度检测、烟雾检测电路、报警电路、显示电路和人体检测等模块组成。温湿度检测部分使用的是DHT11这种型号的温湿度传感器。DHT11是一种单总线型数字式温湿度传感器,它具有误差小、分辨率高、抗干扰能力强等特点。在烟雾检测电路模块当中&…

Nginx 隐藏版本号

只是隐藏 Nginx 版本号,只需在 Nginx 配置文件全局段添加 server_tokens off 然后重启 Nginx 服务 默认安装好了的 Nginx 服务 查看版本 现在修改配置 重启 Nginx 版本信息看不到了 我们下期见,拜拜!

【MySQL】LEFT JOIN表时条件的位置对查询结果的影响

前言 我们知道,JOIN表的查询条件可以放在ON语句处,也可以放在 WHERE 语句处。 用 t2.status = 1 这条件举例: 方式1:放在 WHERE 语句处 SELECT t1.* FROM table1 t1 LEFT JOIN table2 AS t2 ON t2.k1 = t1.k2 WHERE t2.`status` = 1方式2:放在 ON 语句处 SELECT t1.*…

vsto判断workbook是否正在计算中

您可以使用 Workbook 对象的 CalculationState 属性来判断工作簿是否正在计算中。该属性返回一个 XlCalculation 枚举值,可以通过检查其是否等于 XlCalculation.xlCalculationManual 来确定工作簿是否处于手动计算模式,或者检查其是否等于 XlCalculation…

AIX7.2下安装python3

我们可以下载python3对应的AIX版本的安装包 http://www.aixtools.net/index.php/python3 直接执行 installp -d aixtools.python3.3.6.9.0.I -a all 安装完成后,默认安装位置在/opt/bin/python3

有趣之matlab-烟花

待整合1 2 3 动态 有趣编程之11 静态 逼真 3 .m文件路径下放back1.jpg back4.jpg…背景照片 点击screen 就会有小白点升起,爆炸 function yanhuamoban()clear all;%定义全局变量global ah ;%坐标轴句柄global styleNum ;%爆炸图案样式global multiColor; %多颜色变换…

Win11安装Plsql140报错2503

一、安装异常 二、解决办法 出现上述问题,主要是因为msi包安装的权限问题,使用管理员权限安装即解决 。cmd控制台以管理员身份打开WINR)->(SHIFTCTRLRNTER),进入到msi安装包目录下,以管理员身份安装即可&#xff1…

mysql数据库:使用 bash脚本 + 定时任务 自动备份数据

mysql数据库:使用 bash脚本 定时任务 自动备份数据 1、前言2、为什么需要自动化备份?3、编写备份脚本4、备份脚本授权5、添加定时任务6、重启 crond / 检查 crond 服务状态7、备份文件检查 💖The Begin💖点点关注,收藏…

Spring MVC共享域对象操作

1. 属性(共享)域介绍 在 JavaWeb 中,共享域指的是在 Servlet 中存储数据,以便在同一 Web 应用程序的多个组件中进行共享和访问。常见的共享域有四种:ServletContext、HttpSession、HttpServletRequest、PageContext。…

LeetCode28.找出字符串中第一个匹配项

28.找出字符串中第一个匹配项 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 示例 1: 输入…

C++中的C标准库、注释和条件编译

C中的C标准库、注释和条件编译 C标准库 C作为一种在C语言基础上发展起来的编程语言,保留了对C语言标准库的完整支持。这些C标准库提供了一系列的通用功能,如输入输出处理、字符串操作、数学计算等,允许C程序员利用已经熟悉的库来开展工作。…

虾皮Shopee根据ID取商品详情API

在构建电商平台的第三方应用或服务时,开发者经常需要通过编程方式获取商品的详细信息。对于虾皮Shopee平台来说,其提供的API接口使得这一需求得以实现。本文将详细介绍如何调用虾皮Shopee的API接口,根据商品ID获取其商品详情。 准备工作 在…

“优化消费环境 维护消费者权”荥阳市城关乡社工站开展3·15宣传志愿活动

又是一年“315”,为提高辖区群众消费维权意识,让他们可以学会运用政策法律知识维护自身合法权益,同时也为营造出辖区良好营商环境。2024年3月15日,在荥阳市民政局、荥阳市市场监督管理局、城关乡人民政府的支持下,城关…

“值此春意,共享蓝天”—携手植新绿·静待成荫时

种竹交加翠,栽桃烂漫红。——唐杜甫《春日江村》 春风十里,万物生长。春风吹拂绿色现,树吐嫩芽花鲜艳。植树正是好季节,男女老少齐挥铲。种下棵棵小树苗,辛勤培育勤浇灌。来年长成苍天木,绿树成荫美景见。 …

基于ElasticSearch存储海量AIS数据:时空立方体索引篇

文章目录 引言I 时间维切分II 空间范围切分引言 索引结构制约着查询请求的类型和处理方式,索引整体架构制约着查询请求的处理效率。随着时间推移,AIS数据在空间分布上具备局部聚集性,如 果简单地将所有AIS数据插入一个索引结构,随着数据量增长,索引的更新效率、查询效率及…

「字幕之美:解析硬、软、外挂,探寻视频世界的无声艺术」

硬字幕、软字幕与外挂字幕:概述 硬字幕、软字幕和外挂字幕是视频内容中常见的三种字幕形式,它们在提供文字信息的同时,为观众提供了更丰富的观看体验。下面将对这三种字幕进行概述: 硬字幕(Hard Subtitles&#xff0…

RabbitMQ 模拟实现【六】:程序模拟实现

文章目录 模拟实现模拟消费者模拟生产者效果展示 启动结果如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/71841546ad8043f1bd51e4408df791de.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f6e3e72ff9a4483c978ec48e24f075c2.p…

OceanBase原理之内存管理

第1章 前言 1.1 多租户管理简介 OceanBase数据库中,应用了单集群多租户的设计,使得一个集群内能够创建多个彼此独立的租户。在OceanBase数据库,租户成为了资源分配的单位,同时还是数据库对象管理和资源管理的基础。 在某种程度…

桌面备忘录,电脑桌面备忘录怎么设置

在当今快节奏的生活中,备忘录成为了人们工作和生活中不可或缺的工具。然而,随着科技的发展,纸质备忘录逐渐被电子桌面备忘录所取代。在电脑桌面设置备忘录,可以更加高效地管理任务和提醒事项。 电脑桌面是我们日常工作和娱乐的主…