gmssl vs2010编译

news2024/11/15 11:49:21

1、虚拟机win10 x64,离线安装vs2010和2010sp1补丁;

2、安装ActivePerl_v5.28.1.0000和nasm-2.16.03-installer-x64均是默认完整安装;

 nasm官网下载:

Index of /pub/nasm/releasebuilds/2.16.03/win64icon-default.png?t=N7T8https://www.nasm.us/pub/nasm/releasebuilds/2.16.03/win64/ ActivePerl官网要注册,华军下载:ActivePerl下载_ActivePerl(Perl执行工具)官方中文版下载-华军软件园icon-default.png?t=N7T8https://www.onlinedown.net/soft/8364.htm

 3、github下载gmssl-v2官方库;

https://github.com/guanzhi/GmSSL/tree/GmSSL-v2icon-default.png?t=N7T8https://github.com/guanzhi/GmSSL/tree/GmSSL-v2

4、打开vs2010命令行,并且进入解压的代码目录;

5、执行命令perl  Configure  VC-WIN32,报错NASM not found

 

5、nasm配置环境变量,记得重启电脑;

 nasm -h有返回值即代表正常

6、执行perl  Configure  VC-WIN32,继续报错Can't locate Win32/Console.pm in

 这是perl配置问题了,打开路径,C:\Perl64\site\lib\ActivePerl,将Configure.pm右键属性,只读取消勾选,然后395行到413行下图用#号注释,保存,右键属性,恢复只读。

7、再执行perl  Configure  VC-WIN32,成功生成makefile

 

8、nmake开始编译

 9、改报错,未声明的标识符

一共有2个.c需要处理如下:

crypto/sm9/sm9_asn1.c

//300行挪到296行

crypto/sm9/sm9_rate.c

//2287行挪到2204行 

10、nmake继续报错EVP_get_digestnames  EVP_get_ciphernames

GmSSL-GmSSL-v2_2\GmSSL-GmSSL-v2\crypto\evp\names2.c 末尾添加

static void cipher_name_len(const EVP_CIPHER *cipher, const char *from,
	const char *to, void *x)
{
	*((int *)x) += strlen(EVP_CIPHER_name(cipher));
}
 
static void cipher_name(const EVP_CIPHER *cipher, const char *from,
	const char *to, void *x)
{
	strcat((char *)x, EVP_CIPHER_name(cipher));
}
 
char *EVP_get_ciphernames(int aliases)
{
	char *ret = NULL;
	int len = 0;
	EVP_CIPHER_do_all_sorted(cipher_name_len, &len);
 
	ret = OPENSSL_zalloc(len);
	if (!ret) {
		return NULL;
	}
 
	EVP_CIPHER_do_all_sorted(cipher_name, ret);
	return ret;
}
 
char *EVP_get_digestnames(int aliases)
{
	return "sm3:sha1:sha256";
}

11、继续报错ssl/statem/statem_gmtls.c 未声明的标识符

备注:跟第9步类似

 //原本三行注释挪到上面来

12、nmake,speed.c继续报错

 //GmSSL-GmSSL-v2_2\GmSSL-GmSSL-v2\apps\speed.c

3502行的 size_t len = loopargs[i].cipherlen;len = loopargs[i].cipherlen;

1537行添加int len=0;

 

13、继续nmake,没报错,直到出现下图代表编译成功

 14、nmake install一路刷屏自动换行,结束

 15、bin、include和lib全部已经生成

 

 16、xp win7 win10测试,可直接运行

//xp sp3

//win7 32位 

 //win7 64位

//win10 64位 32位

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

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

相关文章

链表带环问题的思考

判断链表是否带环 思路:快慢指针 慢指针走一步,快指针走两步,当快指针追上慢指针时,代表该链表带环。代码如下: /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ …

【服务器报错】Pycharm运行服务器代码提示 can‘t open file “本地文件路径“

1. 问题 Pycharm连接远程服务器,代码已经同步,运行时候报错 #模拟报错 bash: line 0: cd: G:/python/hhh/Hi: No such file or directory /home/hhh/anaconda3/envs/hard/bin/python: cant open file G:/python/hhh/hi/hei.py: [Errno 2] No such file…

Marvelous Designer12 解锁版安装教程 (3D服装设计软件)

前言 Marvelous Designer允许您使用我们的尖端设计软件创建美丽的3D虚拟服装。最后,使用工具在提高质量的同时节省时间,为您的设计注入活力。从基本衬衫到复杂的褶皱连衣裙和粗糙的制服,Marvelous Designer几乎可以将织物纹理和物理特性复制…

基于NAMUR开放式架构(NOA)的工业设备数据采集方案

一 NAMUR开放式架构 传统自动化金字塔结构的优越性在过去许多年里已被证明。然而,传统的自动化金字塔在获取和利用对物联网和工业4.0有价值的数据方面却存在一定挑战。这是因为传统系统通常是封闭的,数据访问受到限制,难以集成到新的数字化解…

GoldenEye-v1(vulnhub)靶机练习实践报告

GoldenEye-v1****靶机练习实践报告 一、安装靶机 靶机是.ova文件,需要用VirtualBox打开,但我习惯于使用VMWare,因此修改靶机文件,使其适用于VMWare打开。 解压ova文件,得到.ovf文件和.vmdk文件。 用记事本打开.ovf文件并修改“…

聚会活跃气氛神器小程序源码系统 各种小游戏 让聚会不再冷场 带源代码包以及安装搭建教程

系统概述 在社交聚会中,如何让气氛活跃起来一直是一个让人关注的问题。小编给大家分享一款聚会活跃气氛神器小程序源码系统。它不仅提供了丰富多样的小游戏,还带有源代码包和详细的安装搭建教程,让你轻松打造属于自己的聚会互动平台。 代码…

WPS文件没有保存怎么恢复?5个解决方案轻松恢复!

“我在WPS上编辑了一个文件,但是还没来得及将它保存,我不小心就退出软件了,现在不知道有什么方法可以恢复WPS文件呢?大家可以帮帮我吗” WPS作为一款功能强大且用户友好的软件,给我们的工作带来了很多的便利。但我们在…

谢宁DOE培训适合哪些人?

近年来,谢宁DOE培训以其专业、系统的课程内容,受到了众多学习者的青睐。那么,这个培训究竟适合哪些人呢?深圳天行健企业管理咨询公司解析如下: 首先,谢宁DOE培训适合质量管理部门的专业人员。质量总监、质量…

解线性方程组——最速下降法及图形化表示 | 北太天元 or matlab

一、思路转变 A为对称正定矩阵, A x b Ax b Axb 求解向量 x x x这个问题可以转化为一个求 f ( x ) f(x) f(x)极小值点的问题,为什么可以这样: f ( x ) 1 2 x T A x − x T b c f(x) \frac{1}{2}x^TAx - x^Tb c f(x)21​xTAx−xTbc 可…

书籍学习|基于SprinBoot+vue的书籍学习平台(源码+数据库+文档)

书籍学习平台 目录 基于SprinBootvue的书籍学习平台 一、前言 二、系统设计 三、系统功能设计 1平台功能模块 2后台功能模块 5.2.1管理员功能模块 5.2.2用户功能模块 5.2.3作者功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 …

MyBatis的基础操作

目录 一.什么是MyBatis? 二.使用MyBatis的准备工作 1.引入依赖: 2.配置数据库连接字符串(建立MaBatis和MySQL的连接) 3.在model包中建立数据库对应的实体类UserInfo 三.通过注解的方式实现MyBatis的开发 1.插入语句(Insert) 2.删除语句(Delete) 3.更新语句(Update) 4…

好用的便签如何独立和组合便签窗口

便签,那些小小的纸片,曾经是我生活中的忠实记录者。每当灵感闪现,或是有什么待办事项,我都会随手写在便签上,然后贴在我目所能及的地方,以便随时提醒我。然而,纸质便签总有其局限性,…

springboot个人旅游管理系统设计与实现-计算机毕业设计源码75806

摘要 在社会快速发展和人们生活水平提高的影响下,旅游产业蓬勃发展,旅游形式也变得多样化,使个人旅游的管理变得比过去更加困难。依照这一现实为基础,设计一个快捷而又方便的基于小程序的个人旅游管理系统是一项十分重要并且有价值…

4个月赚20万!一张图赚7500!多种变现方式,一个被忽视的暴力项目

大家好,今天给大家带来一个被很多人忽视,不起眼确很暴力的项目。 大胆放心干 课程获取: https://hsgww.com/https://hsgww.com/

(二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2

层序遍历 10 102. 二叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 代码随想录 (programmercarl.com) 综合代码&#xff1a; class Solution{public List<List<Integer>> resList new ArrayList<List<Integer>>();public List<List<…

ComfyUI 简化工作流神器

安装也很简单&#xff0c;只需要在 ComfyUI 管理器中搜索「efficiency-nodes-comfyui」&#xff0c;点击安装就可以了。 插件也会放到文末的网盘中&#xff0c;有需要的小伙伴自取&#xff0c;复制到插件目录「\ComfyUI\custom_nodes」下就可以了。安装好了&#xff0c;记得重…

立创·天空星开发板-GD32F407VE-环境搭建

本文以 立创天空星开发板-GD32F407VET6-青春版 作为学习的板子&#xff0c;记录学习笔记。 立创天空星开发板-GD32F407VET6-环境搭建 单片机ARMARM内核系列Cortex-M系列常用ARM芯片厂商 GD32GD32的产品系列开发板开发板资源、尺寸标注图设计图纸 GD32F407 Keil ARM 安装下载地址…

视频营销的智能剪辑:Kompas.ai如何塑造影响力视频内容

引言&#xff1a; 在当今数字化的营销领域&#xff0c;视频内容已经成为品牌吸引用户注意力、建立品牌形象和提升用户参与度的重要方式。然而&#xff0c;要想制作出具有影响力的视频内容&#xff0c;并不是一件容易的事情。这就需要借助先进的技术和工具&#xff0c;如人工智能…

【Java面试】四、MySQL篇(上)

文章目录 1、定位慢查询2、慢查询的原因分析3、索引3.1 数据结构选用&#xff1a;二叉树 & 红黑树3.2 数据结构选用&#xff1a;B树 4、聚簇索引、非聚簇索引、回表查询4.1 聚簇索引、非聚簇索引4.2 回表查询 5、覆盖索引、超大分页优化5.1 覆盖索引5.2 超大分页处理 6、索…

前端JS必用工具【js-tool-big-box】学习,获取数据的详细类型

之前我们习惯性的用typeof方法去判断数据类型&#xff0c;但慢慢的发现&#xff0c;typeof这个方法能力有限&#xff0c;基础的数据类型倒是还能判断&#xff0c;但是复杂一点&#xff0c;或者是null之类的假类型&#xff0c;就判断不出来了。 比如以下这些判断&#xff1a; …