当前位置: 首页 > news >正文

OpenSSL provider

提供者

  • 标准提供者
  • 默认提供者
  • 传统提供者
  • FIPS 提供者
  • 基本提供者
  • 空提供者
  • 加载提供者

标准提供者

提供者是算法实现的容器。每当通过高级别 API 使用加密算法时,都会选择一个提供者。实际上是由该提供者实现执行所需的工作。OpenSSL 自带了五个提供者。在未来,我们预计第三方将分发自己的提供者,这些提供者可以动态添加到 OpenSSL 中。有关编写提供者的文档,请参阅 provider(7) 手册页。

默认提供者

默认提供者收集了所有标准内置的 OpenSSL 算法实现。如果应用程序未明确指定任何其他内容(例如在应用程序中或通过配置中),那么将使用这个提供者。如果尚未加载其他提供者,当我们首次尝试从提供者获取算法时,它将被自动加载。如果已加载其他提供者,那么它将不会被自动加载。因此,如果您想与其他提供者一起使用它,那么您必须显式加载它。

这是一个“内置”提供者,这意味着它编译和链接到 libcrypto 库中,并不存在为单独的独立模块。

传统提供者

传统提供者是一组传统算法的集合,这些算法要么已不再普遍使用,要么被认为是不安全的,并且强烈建议不要使用。然而,一些应用程序可能需要使用这些算法以实现向后兼容性。该提供者不会被默认加载。这可能意味着从之前版本的 OpenSSL 升级的一些应用程序可能会发现一些算法不再可用,除非它们显式加载传统提供者。

传统提供者中的算法包括 MD2、MD4、MDC2、RMD160、CAST5、BF(Blowfish)、IDEA、SEED、RC2、RC4、RC5 和 DES(但不包括 3DES)。

FIPS 提供者

FIPS 提供者包含了默认提供者中可用的一部分算法实现,这些算法符合 FIPS 标准。预期该提供者将通过 FIPS140-2 验证。

在某些情况下,与默认提供者中等价算法相比,该提供者中的算法实现可能存在细微的行为差异。这通常是为了符合 FIPS 标准。

基本提供者

基本提供者包含了默认提供者中可用的一小部分非加密算法。例如,它包含了用于将密钥序列化和反序列化为文件的算法。如果未加载默认提供者,则应始终加载该提供者(特别是如果您使用 FIPS 提供者)。

空提供者

空提供者“内置”到 libcrypto 中,不包含任何算法实现。为了确保默认提供者不会被自动加载,可以加载空提供者。

如果您正在使用非默认的库上下文,并希望确保默认库上下文不会被意外使用,这将会很有用。

加载提供者

要加载的提供者可以在 OpenSSL 配置文件中指定。有关如何通过配置文件配置提供者以及如何自动激活它们的信息,请参阅 config(5) 手册页。

以下是一个加载和激活默认库上下文中的传统提供者和默认提供者的最小配置文件示例。

openssl_conf = openssl_init[openssl_init]
providers = provider_sect[provider_sect]
default = default_sect
legacy = legacy_sect[default_sect]
activate = 1[legacy_sect]
activate = 1

也可以通过编程方式加载提供者。例如,您可以加载传统提供者到默认库上下文中,如下所示。请注意,一旦您显式地将提供者加载到库上下文中,默认提供者将不再自动加载。因此,通常还需要显式加载默认提供者,就像下面的示例一样:

#include <stdio.h>
#include <stdlib.h>#include <openssl/provider.h>int main(void)
{OSSL_PROVIDER *legacy;OSSL_PROVIDER *deflt;/* 将多个提供者加载到默认(NULL)库上下文中 */legacy = OSSL_PROVIDER_load(NULL, "legacy");if (legacy == NULL) {printf("加载传统提供者失败\n");exit(EXIT_FAILURE);}deflt = OSSL_PROVIDER_load(NULL, "default");if (deflt == NULL) {printf("加载默认提供者失败\n");OSSL_PROVIDER_unload(legacy);exit(EXIT_FAILURE);}/* 应用程序的其余部分 */OSSL_PROVIDER_unload(legacy);OSSL_PROVIDER_unload(deflt);exit(EXIT_SUCCESS);
}

相关文章:

OpenSSL provider

提供者 标准提供者默认提供者传统提供者FIPS 提供者基本提供者空提供者加载提供者 标准提供者 提供者是算法实现的容器。每当通过高级别 API 使用加密算法时&#xff0c;都会选择一个提供者。实际上是由该提供者实现执行所需的工作。OpenSSL 自带了五个提供者。在未来&#…...

pandas处理双周数据

处理文件题头格式 部门名称 年度名称 季节名称 商品名称 商品代码 品牌名称 品类名称 颜色名称 商店名称 0M 1L 1XL 27 28 29 2XL 30 31 32 33 3XL 4XL 5XL 6XL S 均1.导入包 导入源 pip install openpyxl -i https://pypi.doubanio.com/simple pip install pandas -i https…...

2023结婚成家,2024借势起飞

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精…...

linux SHELL语句

shell编程 shell编程 一、初识shell 程序 语言 编程语言 自然语言 汉语 英语 计算机语言 c语言cjava php python go shell 编译型语言 c c java解释型语言 php python bash (不能闭源&#xff0c;开发难度低) 编译型语言:运行编译型语言是相对于解释型语言存在的&#xff…...

音频修复和增强软件:iZotope RX 10 (Win/Mac)中文汉化版

iZotope RX 是一款专业的音频修复和增强软件&#xff0c;一直是电影和电视节目中使用的行业标准音频修复工具&#xff0c;iZotope能够帮助用户对音频进行制作、后期合成处理、混音以及对损坏的音频进行修复&#xff0c;再解锁更多功能之后还能够对电影、游戏、电视之中的音频进…...

复试 || 就业day03(2023.12.29)算法篇

文章目录 前言同构字符串存在重复元素有效的字母异位词丢失的数字单词规律 前言 &#x1f4ab;你好&#xff0c;我是辰chen&#xff0c;本文旨在准备考研复试或就业 &#x1f4ab;文章题目大多来自于 leetcode&#xff0c;当然也可能来自洛谷或其他刷题平台 &#x1f4ab;欢迎大…...

处理urllib.request.urlopen报错UnicodeEncodeError:‘ascii‘

参考&#xff1a;[Python3填坑之旅]一urllib模块网页爬虫访问中文网址出错 目录 一、报错内容 二、报错截图 三、解决方法 四、实例代码 五、运行截图 六、其他UnicodeEncodeError: ascii codec 问题 一、报错内容 UnicodeEncodeError: ascii codec cant encode charac…...

数据结构模拟实现LinkedList双向不循环链表

目录 一、双向不循环链表的概念 二、链表的接口 三、链表的方法实现 &#xff08;1&#xff09;display方法 &#xff08;2&#xff09;size方法 &#xff08;3&#xff09;contains方法 &#xff08;4&#xff09;addFirst方法 &#xff08;5&#xff09;addLast方法 …...

性能优化-如何提高cache命中率

本文主要介绍性能优化领域常见的cache的命中率问题&#xff0c;旨在全面的介绍提高cache命中率的方法&#xff0c;以供大家编写出性能友好的代码&#xff0c;并且可以应对性能优化领域的面试问题。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &am…...

分布式【4. 什么是 CAP?】

什么是 CAP&#xff1f; C 代表 Consistency&#xff0c;一致性&#xff0c;是指所有节点在同一时刻的数据是相同的&#xff0c;即更新操作执行结束并响应用户完成后&#xff0c;所有节点存储的数据会保持相同。 A 代表 Availability&#xff0c;可用性&#xff0c;是指系统提…...

<软考高项备考>《论文专题 - 39采购管理(3) 》

3 过程2-实施采购 3.1 问题 4W1H过程做什么获取卖方应答、选择卖方并授予合同的过程作用&#xff1a;选定合格卖方并签署关于货物或服务交付的法律协议。本过程的最后成果是签订的协议&#xff0c;包括正式合同。为什么做实际进行采购谁来做组织中的职能部门或项目经理什么时…...

Java在SpringCloud中自定义Gateway负载均衡策略

Java在SpringCloud中自定义Gateway负载均衡策略 一、前言 spring-cloud-starter-netflix-ribbon已经不再更新了&#xff0c;最新版本是2.2.10.RELEASE&#xff0c;最后更新时间是2021年11月18日&#xff0c;详细信息可以看maven官方仓库&#xff1a;org.springframework.clou…...

前端 js 基础(1)

js 结果输出 &#xff08;点击按钮修改文字 &#xff09; <!DOCTYPE html> <html> <head></head><body><h2>Head 中的 JavaScript</h2><p id"demo">一个段落。</p><button type"button" onclic…...

Android : 使用GestureOverlayView进行手势识别—简单应用

示例图&#xff1a; GestureOverlayView介绍&#xff1a; GestureOverlayView 是 Android 开发中用于识别和显示手势的视图组件。它允许用户在屏幕上绘制手势&#xff0c;并且应用程序可以检测和响应这些手势。以下是关于 GestureOverlayView 的主要特点&#xff1a; 手势识别…...

API集群负载统计 (100%用例)C卷 (JavaPythonNode.jsC语言C++)

某个产品的RESTful API集合部署在服务器集群的多个节点上, 近期对客户端访问日志进行了采集,需要统计各个API的访问频次, 根据热点信息在服务器节点之间做负载均衡,现在需要实现热点信息统计查询功能。 RESTful API的由多个层级构成,层级之间使用/连接,如/A/B/C/D这个地址…...

小梅哥Xilinx FPGA学习笔记18——专用时钟电路 PLL与时钟向导 IP

目录 一&#xff1a;IP核简介&#xff08;具体可参考野火FPGA文档&#xff09; 二&#xff1a; 章节导读 三&#xff1a;PLL电路原理 3.1 PLL基本实现框图 3.2 PLL倍频实现 3.3 PLL分频实现 四: 基于 PLL 的多时钟 LED 驱动设计 4.1 配置 Clocking Wizard 核 4.2 led …...

低代码平台在金融银行中的应用场景

随着数字化转型的推进&#xff0c;商业银行越来越重视技术在业务发展中的作用。在这个背景下&#xff0c;白码低代码平台作为一种新型的开发方式&#xff0c;正逐渐受到广大商业银行的关注和应用。白码低代码平台能够快速构建各类应用程序&#xff0c;提高开发效率&#xff0c;…...

Css基础内容

<!DOCTYPE html> <html> <head> <meta charset"UTF-8" /> <title>CSS</title> <!-- <link rel"stylesheet" href"Html5与Css3\CSS\my.css"> --> <!-- link引入外部样式表&#xff1a;rel&…...

微服务(11)

目录 51.pod的重启策略是什么&#xff1f; 52.描述一下pod的生命周期有哪些状态&#xff1f; 53.创建一个pod的流程是什么&#xff1f; 54.删除一个Pod会发生什么事情&#xff1f; 55.k8s的Service是什么&#xff1f; 51.pod的重启策略是什么&#xff1f; 可以通过命令kub…...

连锁门店管理需要信息化系统

连锁门店管理的信息化系统可以提供以下功能&#xff0c;以满足连锁企业日常管理的需求&#xff1a; 1. 连锁线下收银&#xff1a;信息化系统可以提供线下收银功能&#xff0c;包括商品扫码、价格结算、支付方式选择等。通过系统记录每笔交易数据&#xff0c;方便对销售情况进行…...

系统管理员AI编程实战:基于Claude的运维自动化脚本开发指南

1. 项目概述&#xff1a;一个面向系统管理员的Claude-Code学习与实践仓库最近在整理自己的技术栈时&#xff0c;发现很多系统管理员同行对如何将大型语言模型&#xff08;LLM&#xff09;高效地融入日常运维工作流感到困惑。大家普遍觉得这些AI工具很强大&#xff0c;但具体到写…...

降AI率软件越便宜越好吗?实测5个主流降AI工具,首选嘎嘎降!

一、前言:2026 年毕业必须通过 aigc 检测 2026 年各高校对学术论文的 AIGC 疑似度的审查全面变严, 均发布了具体 AIGC 检测报告和数值要求,211 和 985 高校规定本科论文 AI 率要低于 20%, 硕士要求 AI 率不高于 15%。普通高校一般要求 AI 率控制在 30% 以内。AIGC 检测率超标的…...

赛车电气系统设计的现代化转型与实践

1. 赛车电气系统设计的现状与挑战当人们谈论赛车技术时&#xff0c;脑海中浮现的往往是碳纤维车身、空气动力学套件或是大马力发动机。但在这光鲜亮丽的表象背后&#xff0c;电气系统才是现代赛车的"神经系统"。有趣的是&#xff0c;这个关键领域的设计方法却呈现出两…...

当你的Android手机频繁闪退时,系统在后台悄悄做了什么?—— 深入Rescue Party机制

当你的Android手机频繁闪退时&#xff0c;系统在后台悄悄做了什么&#xff1f;—— 深入Rescue Party机制 每次点击应用图标却遭遇闪退时&#xff0c;用户看到的只是瞬间消失的界面&#xff0c;而Android系统内部正上演着一场精密的多线程救援行动。这种看似简单的崩溃背后&…...

Automa实战:除了循环数字,这两种更高效的网页数据抓取方法你知道吗?(附避坑指南)

Automa进阶实战&#xff1a;突破循环数字的网页抓取高效方法论 当你在深夜盯着屏幕上那个不断转圈的Automa工作流&#xff0c;第37次尝试抓取动态加载的电商商品列表却依然失败时&#xff0c;或许该重新思考自动化抓取的本质了。循环数字就像用螺丝刀当锤子——在某些场景下能勉…...

告别卡顿与错帧:Glide + WebPDecoder库优化WebP动图播放的完整实践

Glide WebPDecoder库深度优化&#xff1a;解决WebP动图播放三大核心难题 在移动应用开发中&#xff0c;动态图像的流畅播放直接影响用户体验。WebP格式因其优秀的压缩率和动画支持&#xff0c;正逐渐成为替代GIF的首选方案。然而&#xff0c;Android平台上使用Glide加载WebP动…...

终极指南:如何快速解决LaTeX中文排版字体问题

终极指南&#xff1a;如何快速解决LaTeX中文排版字体问题 【免费下载链接】latex-chinese-fonts Simplified Chinese fonts for the LaTeX typesetting. 项目地址: https://gitcode.com/gh_mirrors/la/latex-chinese-fonts 还在为LaTeX中文排版时遇到的字体缺失、样式混…...

内容创作平台集成多个AI模型提升内容多样性的实践

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 内容创作平台集成多个AI模型提升内容多样性的实践 对于内容创作平台而言&#xff0c;用户的偏好千差万别&#xff0c;内容的类型也…...

HPM5361EVK深度测评:480MHz RISC-V MCU性能、外设与低功耗实战

1. 项目概述与核心价值拿到一块新的开发板&#xff0c;尤其是基于RISC-V这类新兴架构的MCU开发板&#xff0c;很多工程师的第一反应往往是&#xff1a;跑个分&#xff0c;点个灯。这没错&#xff0c;但如果我们止步于此&#xff0c;就错过了深入理解一块芯片和其生态潜力的机会…...

2026 电子招投标全流程操作指南:环境搭建→签章→上传→解密全避坑

据安华招标 2025 年度电子招投标技术白皮书显示&#xff0c;全国公共资源交易平台电子标覆盖率已达98.7%&#xff0c;但因纯技术操作失误导致的废标率仍高达22%。其中环境配置错误、签章失效、解密失败三大问题&#xff0c;占所有技术类废标的85% 以上。很多企业投入数月打磨标…...