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.hqwc.cn/news/542264.html

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

相关文章

从0开始启动一个Django的docker服务

本文是从0开始启动一个Django的docker服务,包括构建镜像,uwsgi启动服务 在服务器上安装ssh,git,生成公钥并复制到服务器上 # 安装ssh yum install openssh-clients # 生成sshkey ssh-keygen # 查看公钥 cat /root/.ssh/id_rsa.pubclone一下…

腾讯地图的(地图选点|输入模糊匹配)

1.支持用户输入框输入进行模糊匹配获取详细地址以及经纬度2.支持用户模糊匹配后点击选点获取详细地址以及经纬度 1.支持用户输入框输入进行模糊匹配获取详细地址以及经纬度2.支持用户模糊匹配后点击选点获取详细地址以及经纬度 <template><div class"tencentMap-…

【类和对象】类的作用域 | 类的实例化 | 类对象模型 | this指针

目录 5.类的作用域 6.类的实例化 6.1成员的声明和定义 6.2实例化出的对象大小 7.类对象模型❗❗ 7.1如何计算类对象的大小 7.2类对象的存储方式猜测 7.3结构体内存对齐规则 7.3.1内存对齐 7.3.2大小端 8.this指针 8.1this指针的引出 8.2this指针的特性 C和C实…

【网络安全】 MSF提权

本文章仅用于信息安全学习&#xff0c;请遵守相关法律法规&#xff0c;严禁用于非法途径。若读者因此作出任何危害网络安全的行为&#xff0c;后果自负&#xff0c;与作者无关。 环境准备&#xff1a; 名称系统位数IP攻击机Kali Linux6410.3.0.231客户端Windows 76410.3.0.234…

CentOS 7 socat命令端口转发 —— 筑梦之路

命令简介 socat是一个功能强大的命令行工具&#xff0c;也可以看作是netcat的加强版&#xff0c;它可以在两个端口之间建立虚拟通道&#xff0c;实现数据的传输。适用于网络调试、端口转发、安全测试等多种场景&#xff0c;是一个适合网络管理员和开发者的工具 yum在线安装 yu…

搭建GItlab实现自动化部署Springboot项目(超详细)

提示&#xff1a;本例程中使用Docker搭建GItlab&#xff0c;Gitlab runner 通过编写CICD文件实现Springboot项目自动部署。 1、拉取GitLab镜像 命令&#xff1a; docker pull gitlab/gitlab-ce2、部署Gitlab&#xff1a; 我们通过docker搭建的gitlab部署项目的时候会出现一个…

LeetCode 面试经典150题 80.删除有序数组中的重复项II

题目&#xff1a; 给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使得出现次数超过两次的元素只出现两次 &#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件…

cuda cudnn安装

安装 cudnn是否安装成功 注意 cudnn对应的cuda的10.0版本无win11版本 下载win10 即可

002——编译鸿蒙(Liteos -a)

目录 一、鸿蒙是什么 二、Kconfig 2.1 概述 2.2 编译器 2.3 make使用 本文章引用了很多韦东山老师的教程内容&#xff0c;算是我学习过程中的笔记吧。如果侵权请联系我。 一、鸿蒙是什么 这里我补充一下对鸿蒙的描述 这张图片是鸿蒙发布时使用的&#xff0c;鸿蒙是一个很…

探讨NLP对行业大量数据信息抽取的技术实现

在本文中&#xff0c;为了实现高效的信息抽取&#xff0c;我们采用了一个自主研发的多模态AI的大模型NLP平台。 这个平台的使用过程分为以下几个步骤&#xff1a; 数据收集&#xff1a;我们收集了与项目相关的100条数据样本&#xff0c;这些样本涵盖了各种商品描述&#xff0c…

k8s部署hadoop

&#xff08;作者&#xff1a;陈玓玏&#xff09; 配置和模板参考helm仓库&#xff1a;https://artifacthub.io/packages/helm/apache-hadoop-helm/hadoop 先通过以下命令生成yaml文件&#xff1a; helm template hadoop pfisterer-hadoop/hadoop > hadoop.yaml用kube…

酷开科技以酷开系统的力量让电视机“活”起来

让用户回归电视的绝不会是因为电视机本身&#xff0c;而是电视系统的内容和交互的形式。酷开科技以系统的力量让电视机“活”起来。对于许多人来说&#xff0c;观看电影是一种享受、一种放松、一种逃避现实的方式。而现在&#xff0c;酷开科技作为行业内领军企业&#xff0c;为…