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

gmssl vs2010编译

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.lryc.cn/news/359850.html

相关文章:

  • 容器化部署gitlab、jenkins,jenkins应用示例
  • 基于STM32的轻量级Web服务器设计
  • 用r语言处理 Excel数据当中的缺失值方法
  • AWS 高防和阿里云高防深度对比
  • ctfshow web 月饼杯II
  • 「前端+鸿蒙」核心技术HTML5+CSS3(二)
  • unity接入live2d
  • 练习题-17
  • 乐高小人分类项目
  • 个人关于ChatGPT的用法及建议
  • 神经网络的工程基础(二)——随机梯度下降法|文末送书
  • 常见的几种编码方式
  • ubuntu移动硬盘重命名
  • VUE框架前置知识总结
  • 张宇1000题80%不会?别急,这个方法肯定有用!
  • 【python】爬虫记录每小时金价
  • 一行命令将已克隆的本地Git仓库推送到内网服务器
  • Linux文本处理三剑客(详解)
  • AI在线UI代码生成,不需要敲一行代码,聊聊天,上传图片,就能生成前端页面的开发神器
  • go-zero整合单机版ClickHouse并实现增删改查
  • 行政工作如何提高效率?桌面备忘录便签软件哪个好
  • 利用向日葵和微信/腾讯会议实现LabVIEW远程开发
  • SpringBoot 单元测试 指定 环境
  • Flutter 中的 SliverOpacity 小部件:全面指南
  • 源码分析の前言
  • 接口性能测试复盘:解决JMeter超时问题的实践
  • [数据集][目标检测]猕猴桃检测数据集VOC+YOLO格式1838张1类别
  • 摸鱼大数据——Hive函数7-9
  • python连接数据库
  • 能不能接受这些坑?买电车前一定要看