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

openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_paramfromdata.c

文章目录

    • openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_paramfromdata.c
    • 概述
    • 笔记
    • END

openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_paramfromdata.c

概述

开源工程包含的头文件类型是.inc, 要重命名为.h, 否则没有c++头文件语法提示

从数组中载入大数p,q,g
建立ossl_param, 设置参数的p,q,g
用参数初始化_evp_pkey_ctx, 得到_evp_pkey_dsa
打印_evp_pkey_dsa的共有数据(p,q,g …) + 参数

笔记

/*!
\file EVP_PKEY_DSA_paramfromdata.c
\note
openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_paramfromdata.c开源工程包含的头文件类型是.inc, 要重命名为.h, 否则没有c++头文件语法提示从数组中载入大数p,q,g
建立ossl_param, 设置参数的p,q,g 
用参数初始化_evp_pkey_ctx, 得到_evp_pkey_dsa
打印_evp_pkey_dsa的共有数据(p,q,g ...) + 参数
*//*-* Copyright 2022-2023 The OpenSSL Project Authors. All Rights Reserved.** Licensed under the Apache License 2.0 (the "License").  You may not use* this file except in compliance with the License.  You can obtain a copy* in the file LICENSE in the source distribution or at* https://www.openssl.org/source/license.html*//** Example showing how to load DSA params from raw data* using EVP_PKEY_fromdata()*/#include <openssl/param_build.h>
#include <openssl/evp.h>
#include <openssl/core_names.h>
#include "dsa.h"#include "my_openSSL_lib.h"int main(int argc, char** argv)
{int ret = EXIT_FAILURE;OSSL_LIB_CTX* _ossl_lib_ctx = NULL;const char* propq = NULL;EVP_PKEY_CTX* _evp_pkey_ctx = NULL;EVP_PKEY* _evp_pkey_dsa = NULL;OSSL_PARAM_BLD* _ossl_param_bld = NULL;OSSL_PARAM* _ossl_param = NULL;BIGNUM* p = NULL, * q = NULL, * g = NULL;p = BN_bin2bn(dsa_p, sizeof(dsa_p), NULL);q = BN_bin2bn(dsa_q, sizeof(dsa_q), NULL);g = BN_bin2bn(dsa_g, sizeof(dsa_g), NULL);if (p == NULL || q == NULL || g == NULL)goto cleanup;/* Use OSSL_PARAM_BLD if you need to handle BIGNUM Parameters */_ossl_param_bld = OSSL_PARAM_BLD_new();if (_ossl_param_bld == NULL)goto cleanup;if (!OSSL_PARAM_BLD_push_BN(_ossl_param_bld, OSSL_PKEY_PARAM_FFC_P, p)|| !OSSL_PARAM_BLD_push_BN(_ossl_param_bld, OSSL_PKEY_PARAM_FFC_Q, q)|| !OSSL_PARAM_BLD_push_BN(_ossl_param_bld, OSSL_PKEY_PARAM_FFC_G, g))goto cleanup;_ossl_param = OSSL_PARAM_BLD_to_param(_ossl_param_bld);if (_ossl_param == NULL)goto cleanup;_evp_pkey_ctx = EVP_PKEY_CTX_new_from_name(_ossl_lib_ctx, "DSA", propq);if (_evp_pkey_ctx == NULL) {fprintf(stderr, "EVP_PKEY_CTX_new_from_name() failed\n");goto cleanup;}if (EVP_PKEY_fromdata_init(_evp_pkey_ctx) <= 0|| EVP_PKEY_fromdata(_evp_pkey_ctx, &_evp_pkey_dsa, EVP_PKEY_KEY_PARAMETERS, _ossl_param) <= 0) {fprintf(stderr, "EVP_PKEY_fromdata() failed\n");goto cleanup;}if (!dsa_print_key(_evp_pkey_dsa, 0, _ossl_lib_ctx, propq))goto cleanup;ret = EXIT_SUCCESS;
cleanup:EVP_PKEY_free(_evp_pkey_dsa);EVP_PKEY_CTX_free(_evp_pkey_ctx);OSSL_PARAM_free(_ossl_param);OSSL_PARAM_BLD_free(_ossl_param_bld);BN_free(g);BN_free(q);BN_free(p);return ret;
}

END

相关文章:

openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_paramfromdata.c

文章目录 openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_paramfromdata.c概述笔记END openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_paramfromdata.c 概述 开源工程包含的头文件类型是.inc, 要重命名为.h, 否则没有c头文件语法提示 从数组中载入大数p,q,g 建立ossl…...

【k8s】Kubernetes技术和相关命令简介

一、 Kubernetes简介 Kubernetes是Google开源的一个容器编排引擎&#xff0c;它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时&#xff0c;通常要部署该应用的多个实例以便对应用请求进行负载均衡。kubernetes&#xff0c;简称K8s&#xff0…...

清晰光谱空间:全自动可调波长系统的高光谱成像优势

高光谱成像技术 高光谱成像技术是一种捕获和分析宽波长信息的技术&#xff0c;能够对材料和特征进行详细的光谱分析和识别。高光谱成像技术的实现通过高光谱相机&#xff0c;其工作原理是使用多个光学传感器或光学滤波器分离不同波长的光&#xff0c;并捕获每个波段的图像&…...

23.实战演练--个人主页

<?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"><applicationandroid:allowBackup"true"an…...

[剪藏] - 任泽平年终演讲精华:点燃希望——2024中国经济十大预测

任泽平年终演讲精华&#xff1a;点燃希望——2024中国经济十大预测 泽平宏观 2023-12-23 08:01 发表于上海 12月22日22:30&#xff0c;任泽平年终秀“点燃希望乐观者前行——2024中国经济十大预测”圆满收官。 泽平宏观、北京广播电视台、上海高净值研究院、北京时间等携手打…...

基于LabVIEW的压力传感器测试系统

摘要 现在各类压力传感器已广泛应用于各种工业自控环境&#xff0c;对压力传感器的研究 及应用&#xff0c;既可以体现一个国家的科技发展水平&#xff0c;又可以提升国家的综合国力&#xff0c;还 可以在丰富、方便和智能化人们的生活方面做出重要的贡献。而针对不同仪器组 成…...

Vue 如何使用WebSocket与服务器建立链接 持续保持通信

WebSocket 浏览器通过JavaScript向服务器发出建立WebSocket链接的请求&#xff0c;链接建立后&#xff0c;客户端和服务器端就可以通过TCP链接直接交互数据。WebSocket链接后可以通过send()方法来向服务器发送数据&#xff0c;并通过onnessage事件来接受服务器返回的数据。 创…...

自动驾驶模拟器

目录 Carla 自动驾驶模拟器 Udacity自动驾驶模拟器 Carla 自动驾驶模拟器 pip install carla 需要下载地图 Udacity自动驾驶模拟器...

Jmeter的文件参数化:CSV数据文件设置和_CSVRead函数

一、CSV数据文件设置 1、简介 CSV数据文件配置&#xff08;CSV Data Set Config&#xff09;可以将CSV文件中数据读入自定义变量中 Jmeter中CSV数据文件配置的界面如下图所示&#xff1a; 其中&#xff1a; &#xff08;1&#xff09;文件编码 文件的编码格式&#xff0c;与所…...

windows编译TensorFlowServing

概述 整个编译打包过程的总体思路&#xff0c;是参照在linux下的编译流程&#xff0c;配置环境&#xff0c;执行编译命令&#xff0c;根据编译器/链接器反馈的错误&#xff0c;修改相应的源码或者相关库文件的存放路径&#xff0c;编译出windows平台下静态库和二进制执行文件。…...

debian 12 安装 浏览器 Epiphany

Epiphany 什么epiphany-browser epiphany-browser 是&#xff1a; Epiphany 是一款简单而强大的 GNOME 网络浏览器&#xff0c;针对 非技术用户。它的原则是简单和标准 合规。 简单性是通过精心设计的用户界面和依赖来实现的 在用于执行外部任务&#xff08;如阅读 电子邮件…...

Kafka-消费者-KafkaConsumer分析

与KafkaProducer不同的是&#xff0c;KafkaConsumer不是一个线程安全的类。 为了便于分析&#xff0c;我们认为下面介绍的所有操作都是在同一线程中完成的&#xff0c;所以不需要考虑锁的问题。 这种设计将实现多线程处理消息的逻辑转移到了调用KafkaConsumer的代码中&#x…...

Spring | Spring中的Bean--下

Spring中的Bean: 4.Bean的生命周期5.Bean的配装配式 ( 添加Bean到IOC容器的方式 依赖注入的方式 )5.1 基于XML的配置5.2 基于Annotation (注解) 的装配 (更常用&#xff09;5.3 自动装配 4.Bean的生命周期 Spring容器可以管理 singleton作用域的Bean的生命周期&#xff0c;在此…...

本周五上海见 第二届证券基金行业先进计算技术大会暨2024低时延技术创新实践论坛(上海站)即将召开

低时延技术是证券基金期货领域业务系统的核心技术&#xff0c;是打造极速交易系统领先优势的关键&#xff0c;也是证券基金行业关注的前沿技术热点。 1月19日下午&#xff0c;第二届证券基金行业先进计算技术大会暨2024低时延技术创新实践论坛&#xff08;上海站&#xff09;即…...

怎么安装IK分词器

.安装IK分词器 1.在线安装ik插件&#xff08;较慢&#xff09; # 进入容器内部 docker exec -it elasticsearch /bin/bash ​ # 在线下载并安装 ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elastics…...

【踩坑】flask_uploads报错cannot import name ‘secure_filename‘

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 背景说明 截至目前&#xff0c;用新版的flask实现文件上传(用到flask_uploads库)&#xff0c;会出现这个问题。 问题原因 版本问题&#xff0c;新的werkzeug已经把secure_filename的位置改了。 解决方法 手动修改…...

AI编程可视化Java项目拆解第一弹,解析本地Java项目

之前分享过一篇使用 AI 可视化 Java 项目的文章&#xff0c;同步在 AI 破局星球、知乎、掘金等地方都分享了。 原文在这里AI 编程&#xff1a;可视化 Java 项目 有很多人感兴趣&#xff0c;我打算写一个系列文章拆解这个项目&#xff0c;大家多多点赞支持~ 今天分享的是第一…...

使用arcgis pro是类似的控件样式 WPF

1.资源加载 <controls:ProWindow.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><extensions:DesignOnlyResourceDictionary Source"pack://application:,,,/ArcGIS.Desktop.Framework;component\Themes\Default.xaml&quo…...

C语言所有字符串函数举例如何使用

strcpy: 将一个字符串复制到另一个字符串中 char source[] "Hello"; char destination[10]; strcpy(destination, source);strcat: 将一个字符串连接到另一个字符串的末尾 char str1[20] "Hello"; char str2[] "World"; strcat(str1, str2)…...

ArcGIS Pro 如何新建布局

你是否已经习惯了在ArcGIS中数据视图和布局视图之间来回切换&#xff0c;到了ArcGIS Pro中却找不到二者之间切换的按钮&#xff0c;即使新建布局后却发现地图怎么却是一片空白。 这一切的一切都是因为ArcGIS Pro的功能框架完全不同&#xff0c;这里为大家介绍一下在ArcGIS Pro…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么&#xff0c;为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中&#xff0c;我们在使用电子设备时&#xff0c;我们所输入执行的每一条指令最终大多都会作用到硬件上&#xff0c;比如下载一款软件最终会下载到硬盘上&am…...

十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建

【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...