GmSSL-3.1.1编译

1.源码下载:

下载地址:https://github.com/guanzhi/GmSSL/releases选择对应版本下载。

2.选择要下载的源码包:

2.编译:

2.1 windows编译:打开vs命令行,选择想要编译的版本,x86或x64.

cd /d  E:/ProjectCode/GmSSL-3.1.1 目录,mkdir build创建目录,cd build进入目录,执行命令:

cmake .. -DENABLE_SM2_PRIVATE_KEY_EXPORT=ON -DCMAKE_INSTALL_PREFIX=../gmssLib/win64/,如图所示,执行完后会在build目录下生成对应的vs版本工程文件。 

通过vs打开工程即可编译windows版本相应的库。

2.2 linux 编译

与windows相同,创建build目录并进入,执行命令:cmake .. -DENABLE_SM2_PRIVATE_KEY_EXPORT=ON -DCMAKE_INSTALL_PREFIX=../GmSSLLib/aarch -DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake ,DENABLE_SM2_PRIVATE_KEY_EXPORT指定启用未加密的接口,DCMAKE_INSTALL_PREFIX指定安装目录,DCMAKE_TOOLCHAIN_FILE指定编译工具链,可以设置交叉编译。

linux 交叉编译报错,非交叉编译无错误。

错误原因:getentropy()获取随机数函数找不到。

解决方法:将源代码rand_unix.c修改为如下代码。

int rand_bytes(uint8_t *buf, size_t len)
{
    if (!buf) {
        error_print();
        return -1;
    }
    if (!len || len > RAND_MAX_BUF_SIZE) {
        error_print();
        return -1;
    }

    srand((unsigned int)time(NULL));
        for(int i = 0; i < len; i++){
            buf[i] = rand()%256;
        }
    //if (getentropy(buf, len) != 0) {
    //    error_print();
    //    return -1;
    //}
    return 1;
}

修改完后编译正常。

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

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

相关文章

Mongodb入门--头歌实验MongoDB 复制集 分片

一、MongoDB之副本集配置 1.1MongoDB主从复制 主从复制是MongoDB最早使用的复制方式&#xff0c; 该复制方式易于配置&#xff0c;并且可以支持任意数量的从节点服务器&#xff0c;与使用单节点模式相比有如下优点&#xff1a; 在从服务器上存储数据副本&#xff0c;提高了数…

【postgresql 基础入门】入门教程成形了,八大章节,涵盖库,表,事务,约束,数据类型,聚集函数,轻松入门

Postgresql 基础入门 ​专栏内容&#xff1a; postgresql内核源码分析手写数据库toadb并发编程 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 序言 Postg…

维修莱宝Leybold真空计GRAPHIX TWO白屏 触摸屏控制器维修深圳捷达工控维修

图形 高端主动式仪表控制器 有源传感器的操作单元 为了将有源传感器集成到系统控制器中&#xff0c;需要额外的显示和操作仪器。它们为变送器提供必要的电源电压或在本地显示测量值。对于此类应用&#xff0c;莱宝提供了不同的仪器。基本的 DISPLAY 系列和先进的 GRAPHIX 系列均…

【python】图像边缘提取效果增强方法-高斯模糊

一、介绍 高斯模糊是一种常用的图像处理技术&#xff0c;用于减少图像中的噪声和细节。它通过对图像中的每个像素点进行加权平均来实现模糊效果。具体而言&#xff0c;高斯模糊使用一个高斯核函数作为权重&#xff0c;对每个像素点周围的邻域进行加权平均。这样可以使得每个像…

在【Cencos7】中安装【Nacos】并适配【PostgreSQL】数据库

在【Cencos7】中安装【Nacos-2.3.0】并适配【PostgreSQL】数据库 安装JDK wget命令下载&#xff1a; wget https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz解压 tar -xzvf jdk-7u80-linux-x64.tar.gz将解压后的目录移动到/opt下 sudo mv jdk…

【解决方法】Hexo根据更新时间修改文章排序机制

前言&#xff08;可不看&#xff09; 之前由于电脑不在身边&#xff0c;长期通过其它电脑写文章利用之前说过的github action推送博客更新。但是发现一个问题&#xff0c;它总是按照文章创建时间排序&#xff0c;而不是文章更新时间。 查过网上很多方法&#xff0c;法一&#…

Swift中的结构体

Swift中的结构体是一种自定义的数据类型&#xff0c;可用于存储多个相关的值。结构体可以包含属性和方法&#xff0c;从而使其具有特定的功能。 结构体与类相似&#xff0c;但有一些重要的区别。最重要的区别是&#xff0c;结构体是值类型&#xff0c;而类是引用类型。这意味着…

二叉树遍历算法和应用

二叉树是指度为 2 的树。它是一种最简单却又最重要的树&#xff0c;在计算机领域中有这广泛的应用。 二叉树的递归定义如下&#xff1a;二叉树是一棵空树&#xff0c;或者一棵由一个根节点和两棵互不相交的分别称为根节点的左子树和右子树所组成的非空树&#xff0c;左子树和右…

【前端】解决前端图表大数据配色难题:利用HSL动态生成颜色方案

解决前端图表大数据配色难题&#xff1a;利用HSL动态生成颜色方案 在数据可视化项目中&#xff0c;尤其是当需要绘制包含大量数据点的图表时&#xff0c;一个常见的挑战是如何为每个数据点分配一个独特而又视觉上容易区分的颜色。使用固定的颜色列表可能在数据点数量超过列表限…

信号完整性之特性阻抗那些事儿

原文来自微信公众号&#xff1a;工程师看海&#xff0c;与我联系&#xff1a;chunhou0820 看海原创视频教程&#xff1a;《运放秘籍》 大家好&#xff0c;我是工程师看海。 我们经常说控制阻抗&#xff0c;这个阻抗是什么意思呢&#xff1f; 信号在传输线中&#xff0c;是一步…

使用Android Studio制作一个蓝牙软件 ---(一)

一、创建项目&#xff08;项目名称---BluetoothActivity&#xff09; 二、创建HomeActivity页面 1.点击一个文件夹 --- 鼠标右击 --- 新建 --- Acyivity --- Empty Views Activity 三、创建styles.xml 点击 values文件夹 --- 鼠标右击 --- 新建 --- Values Resource File sty…

数据结构----堆 和 堆排序 代码

目录 Heap.h Heap.c HeapTest.c Heap.h #pragma once/*堆*/ //完全二叉树 //可以用数组存&#xff0c;所以实现和数据结构很类似#include <stdio.h> #include <stdlib.h> #include <assert.h>/**/ #include <stdbool.h>#define InitSize 100 //#de…

【数据结构】04串

串 1. 定义2. 串的比较3. 串的存储结构4. 具体实现5. 模式匹配5.1 常规思路实现5.2 KMP模式匹配算法5.2.1 next数组计算5.2.1 代码计算next数组5.2.2 KMP算法实现 1. 定义 串(string)是由零个或多个字符组成的有限序列&#xff0c;又叫字符串。 一般记为s a 1 , a 2 , . . . ,…

NGO-VMD+皮尔逊系数+小波阈值降噪+重构

NGO-VMD皮尔逊系数小波阈值降噪重构 NGO-VMD皮尔逊系数小波阈值降噪重构代码获取戳此处代码获取戳此处 以西储大学轴承数据为例&#xff0c;进行VMD&#xff0c;且采用NGO进行K a参数寻优 并对分解分量计算皮尔逊相关系数筛选含噪声分量&#xff0c;对其进行小波软硬阈值降噪&a…

C++计算程序运行时间

引言 有时候我们需要简单计算下程序的运行时间&#xff0c;但又不想借助工具&#xff0c;而是简单的几行代码来粗略计算下时间&#xff0c;话不多说我们直接开始吧。 chrono库使用 C11中可以通过该库来实现&#xff0c;示例代码如下&#xff1a; #include <iostream>…

C/C++内存泄漏及检测

“该死系统存在内存泄漏问题”&#xff0c;项目中由于各方面因素&#xff0c;总是有人抱怨存在内存泄漏&#xff0c;系统长时间运行之后&#xff0c;可用内存越来越少&#xff0c;甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一&#xff0c;因为除非用完内存或调用…

【JAVA基础篇教学】第十篇:Java中Map详解说明

博主打算从0-1讲解下java基础教学&#xff0c;今天教学第十篇&#xff1a;Java中Map详解说明。 在 Java 编程中&#xff0c;Map 接口代表了一种键值对的集合&#xff0c;每个键对应一个值。Map 接口提供了一系列操作方法&#xff0c;可以方便地对键值对进行增删改查等操作。本…

好题推荐 CF1265E Beautiful Mirrors

题目传送门-洛谷 题目传送门-CF Part.1 题意 有 n n n 面镜子&#xff0c;第 i i i 个镜子有 p i 100 \frac{p_{i}}{100} 100pi​​ 的概率说 “你真好看”。一个人从第一个镜子开始&#xff0c;到第 n n n 个镜子说 “你真好看” 为止的天数期望&#xff0c;方式如下&am…

C++菜单查询

定义一个菜品类&#xff0c;包含菜名和菜价两个私有数据成员&#xff0c;设置菜名菜价&#xff0c;输出菜名菜价&#xff0c;获取菜价等共有成员函数。main函数中读入n个菜品的菜名和价格&#xff0c;然后输出菜价低于mprice的所有菜品信息(按输入顺序输出)&#xff0c;以及低于…

JavaScript:Object对象的属性方法

Object.defineProperty()方法: Object.defineProperty()方法---为对象添加属性---Vue的源码中经常用到 // 1 Object.defineProperty()方法---为对象添加属性---Vue的源码中经常用到const person {firstName: 呼呼,lastName: 憨憨}// // 为某个对象添加一个属性,并对该属性进…