| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 山东大学软件工程应用与实践——GMSSL开源库(一) ——WINDOWS下GMSSL的安装与编译的超详细保姆级攻略 -> 正文阅读 |
|
[网络协议]山东大学软件工程应用与实践——GMSSL开源库(一) ——WINDOWS下GMSSL的安装与编译的超详细保姆级攻略 |
2021SC@SDUSC GMSSL简介GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码)算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具,可以用于构建PKI/CA、安全通信、数据加密等符合国密标准的安全应用。GmSSL项目是OpenSSL项目的分支,并与OpenSSL保持接口兼容。因此GmSSL可以替代应用中的OpenSSL组件,并使应用自动具备基于国密的安全能力。GmSSL项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用。 GMSSL开源代码:https://github.com/guanzhi/GmSSL 准备工作1、 新版本visual studio,我这里使用的是vs2019 开始进行编译工作可参考GMSSL官网安装方式:http://gmssl.org/docs/install.html
这个是任何平台Windows/ linux都需要增加的一段代码,无脑添加即可,否则编译的时候会出现下面的错误。 若不慎忘记添加代码出现了这个错误,一定要记得执行 nmake clean命令清楚之前编译过的文件。 1、 使用合适的编译器 在开始菜单找到已经安装好的vs2019的文件夹,找到图示的几个编译器。 进入GMSSL源码目录
(注意这里该大写的一定要大写,之前就因为不注意输入了vc-win64a一直报错……) 4、 nmake生成Makefile文件,该过程会持续一段时间。
5、 nmake test进行编译检测。
6、 nmake install进行安装。
默认安装到C:\Program Files (x86)\GmSSL,把文件中的bin文件夹添加至系统环境变量中去,就可以使用gmssl命令了。 最后如果安装成功,打开cmd输入gmssl version来查看当前版本。 报错虐我千万遍的fatal error: 每次perl configure之后进行nmake的时候,总是出现这个fatal error,在网上百度谷歌之后,类似的fatal error U1077倒是见过了不少,就是没有我遇到的情况。我重新安装了以上所有软件,甚至把源码删掉重新在GitHub上面又下载了一遍之后都没有改善,依旧是fatal error。 问过老师之后知道GMssl在Windows系统上编译过程中非常可能在汇编的环节出现问题,fatal error所显示的问题确实也在所下载的NASM汇编软件上面。经过百度perl configure的具体作用之后,因为之前一直使用的是perl Configure VC-WIN64A,故想到是不是格式出现了错误,然后就nmake clean之后重新perl Configure VC-WIN32了一遍,nmake之后果然顺畅的编译中。但不一会儿就又出现了新的错误: 虽然库的位数与电脑不匹配,但是至少消除了之前的fatal error U1077。我准备使用最笨的方法,上面画出的三种VC的编译器,在每一个编译器上面都执行一遍perl Configure VC-WIN64A和perl Configure VC-WIN32(每次执行失败之后都要记得nmake clean一次)。果然在官网所使用的Developer command中成功编译了Gmssl库。 中间也多多少少遇到了一些小问题,都可以通过百度解决,其他常见的报错可参见其他csdn或其他论坛上的讨论。 至此GMSSL的编译工作就算完成了。 如有错误,欢迎批评指正! 下一步工作通过指导老师的讲解与相关资料的搜索,国密算法中的sm2和sm9算法是GMSSL的最核心的算法之二。小组分工过后,接下来我主要以针对基于身份验证的sm9算法为核心进行详细分析,同时包括对openssl不支持的一些国密算法以及新型的密码算法进行代码分析,学习SSL/TLS等相关密码协议,在分析代码的过程中体会开发者的GMSSL coding style以及中华人民共和国密码行业标准,在以后的编程过程中更加规范化的要求自己。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 1:43:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |