gmssl

2018-2019-2 20165221课程设计学习-总结报告

假装没事ソ 提交于 2021-02-01 00:24:43
2018-2019-2 20165221课程设计学习-总结报告 眉头: 姓名 :谭笑 学号 :20165221 题目 :GMSSL基于python的实现 指导老师 :娄嘉鹏 完成时间 :2019年5月6日---2019年5月26日 验收时间 :2019年5月27日 小组成员 :杨靖涛,谭笑,刘津甫 每周任务清单: week1 下载安装Python的编译运行环境 完成码云仓库和git的设置 了解几个国密算法 跟着网课学习一些Python的基本语法 week1学习博客链接 week2 搞清楚sm3国密算法的整个加解密过程 学习了Python中用来作图的turtle库 对比了解了每种编程语言的区别、 week2学习博客链接 week3 深入了解Openssl 拷贝虚拟机搭建环境 测试基于rsa的加解密 python实现非对称加解密 基于Python和OpenSSL实现的SSL网络通信 week3学习博客链接 最终成果展示: 国密sm3的加解密成功 : 基于GMSSL的RSA的加解密测试 : 基于Python和GMSSL实现的SSL网络通信 : 绑定成功,建立连接 套接字连接成功 并且获取证书的具体信息 : 附加知识学习: python中用到的turtle库: 用库函数,绘制一个五角星 : 九九乘法表 : 用库函数,绘制自己姓名的首字母 : 代码链接: 码云链接 课程设计总结:

SM2算法的加密签名消息语法规范(二)如何构造

情到浓时终转凉″ 提交于 2021-01-15 12:55:57
既然是要构造国密规范的消息语法数据类型,那当然要用到gmssl库咯。(GmSSL项目是 OpenSSL 项目的分支,并与OpenSSL保持接口兼容。因此GmSSL可以替代应用中的OpenSSL组件,并使应用自动具备基于国密的安全能力。) 1、引出问题 我们知道openssl中是已实现了RFC规范中的各种类型数据的定义。这些定义在gmssl中同样存在。从之前的文章我们了解到国密规范的消息语法类型与RFC规范中的基本一致(主要是某些字段填入的数据存在差异),因此我们可以使用gmssl中的pkcs#7模块的相关封装接口来实现数据的封装。 虽然可以使用但是若直接调用pkcs#7模块去做的话,最后出来的数据肯定不符合国密规范,因为OID不对呀。 gmssl库不支持GM/T0010规范中定义的OID 。 那怎么办捏? 也许有童鞋会说“那把OID改成国密规范中的OID呀”。 是的,可以改,因为OID是类型标识符,并不参与实际的密码运算。但是改完后就会发现DER编码(i2d_PKCS7(...))会失败。[○・`Д´・ ○] 查看gmssl源码,可知pkcs7结构定义如下: 其内部有一个union(包含消息语法规范中的各类型),通过ASN1_OBJECT *type来指明当前内容是哪种类型。在进行DER编解码时会根据type来选择对应的数据结构进行序列化

在以太坊上如何实现联盟链

早过忘川 提交于 2020-11-22 01:29:45
搞了三个月联盟链,基本上算是告一段落,大概梳理下所做的东西,希望能对要做联盟链的人有所帮助。 在写这篇文章前,简单介绍下联盟链的功能。 国密和国际算法切换 参数toml配置 有币无币 支持Gmssl P2P的证书准入 委员会成员更新 Solc编译器 Tendermint共识 权限准入 交易校验 Rpc 状态存储 系统合约 加密算法 国密和S256,P256 支持国密sm2,sm3,sm4,国际的支持p256,比特币和以太坊都使用的s256.刚开始做的时候计算支持p256和国密,因为go sdk里面证书使用了p256。后在做的过程中发现国外证书很多还需要支持RSA,遂引入了gmssl,委员会中的PK公钥和证书做了分离。 统一的接口,外部调用同一签名验签方法 国密里面有个问题,无法 recover公钥 ,校验签名比较慢。 Toml文件配置 toml文件的优点在于不需要在启动的时候指定一系列参数 节点信息 网络ID 同步模式 委员会私钥 IP和端口 txpool gas门槛 txpool账户数 节点rpc端口api 存储目录 ipc websocket 开放api rpc 端口 p2p节点配置 证书 节点私钥 节点连接数 监听地址 创世区块 创世里面指定了 UseGas 指定有无币, KindOfCrypto 指定加密类型, PermisionWlSendTx ,

Mac 编译 Gmssl 过程

て烟熏妆下的殇ゞ 提交于 2020-08-09 02:58:50
Gmssl 在mac上编译会碰到类似This system (darwin64-x86_64-cc) is not supported. See file INSTALL for details.这样的提示。解决办法: 1、修改Configure、test/build.info、test/run_tests.pl中的 use if $^O ne " VMS " , ' File::Glob ' => qw/ glob / ; 变为 use if $^O ne " VMS " , ' File::Glob ' => qw/ :glob / ; make 过程会发现无法通过rate_test测试,修改test/sm9test.c中的 #if SM9_TEST if (!rate_test()) { printf("sm9 rate pairing test failed\n"); err++; } else printf("sm9 rate pairing test passed\n"); #endif 即可通过编译,特此记录。 来源: oschina 链接: https://my.oschina.net/canzyq/blog/4312641

GmSSL安装过程中出现的问题

最后都变了- 提交于 2020-05-01 04:28:46
GmSSL安装过程中出现的问题 在安装GmSSL的时候出现了很多的问题,为了解决这些问题也是花费了大量的时间,甚至还重新装了一次虚拟机。在解决问题的过程中向很多同学进行求助,但是他们都没有碰到和我类似的问题,因此只能自己一点点的尝试,花费了很长时间,直到上周六才弄好。后来我发现很多同学都和我有相同的问题(这里很想哭,为什么我之前求助的同学都没有遇到和我相同的问题~~~ )在这里补上一一篇博客吧,帮助那些还没有弄好的小伙伴们顺利完成 问题1 下载源 蓝墨云中给的压缩包很多同学反映下载后解压不了(不过我的是可以解压的),如果解压不了就去网站上下载吧。 问题2 安装gcc 在安装gmssl之前先安装工程车,命令为 sudo apt install gcc 如果有文件提示错误或安装失败可以按照他给出的提示中 apt-get update 更新一下镜像源(这个不同人的问题可能不一样,我的在安装的时候是后20个显示连接失败,有的人是前20个连接失败),更新完镜像源后在执行一次安装命令,基本就可以完成。如果还不能执行成功的同学建议去网上找一下镜像源替换自己虚拟机的,我在安装时更新完镜像源后gcc就可以成功安装了。 问题3 查看是否安装成功时出现的问题 1.错误提示error: while loading shared libraries: libssl.so.1.1: cannot open

SSL通信双方如何判断对方采用了国密

淺唱寂寞╮ 提交于 2020-04-10 12:01:46
SSL通信双方如何判断对方采用了国密 14 天前 2020-03-25 21:45:11 阅读 720 https://cloud.tencent.com/developer/search/article-国密 SSL通信涉及两方的参与者,通常采用的模型是Client/Server。如果我们开发Client端产品(比如浏览器),可能会和多方的Server产品对接。那么问题来了,双方是如何知道对方使用了国密算法呢?这个问题非常重要,只有双方采用同样的加密标准,才能正常通信。难道采用“天王盖地虎,宝塔镇河妖”的接头暗号? 在揭开这个谜底之前,我们先了解一下OID(Object Identifier,对象标志符),然后再聊一聊密码套件(Cipher Suite),就可以慢慢理解SSL通信双方是如何接上头的。当然,整个SSL通信涉及到很多标准和协议,不是一篇文章能讲完的,所以本文只是抛砖引玉,探讨一些基本的概念。可能对于资深人士而言,不值得一提,但我初入门时,也是摸索了好久,才慢慢能深入到细节。 OID OID是由ISO/IEC、ITU-T国际标准化组织上世纪80年代联合提出的标识机制,其野心很大,为任何类型的对象(包括实体对象、虚拟对象和组合对象)进行全球唯一命名。通过唯一的编码,我们就可以识别出对象。但要为所有对象进行唯一命名,其难度和工作量都很大,所以它采用了分层树形结构。

OpenSSL和GmSSL在Windows下编译过程

独自空忆成欢 提交于 2020-04-07 11:27:33
OpenSSL和GmSSL在Windows下编译过程 (2018-05-31 15:02:13) 转载 ▼ 标签: openssl gmssl 分类: OpenSSL 本文用于记录GmSSL-2.0在Windows下的编译过程。 1,环境:Win7-x64,VS2015,编译WIN32库; 2,下载GmSSL-2.0源码; 3,编译:参考GmSSL官网编译说明,链接地址http://gmssl.org/docs/install.html 4,需要按照ActivePerl和NASM; NASM下载地址:www.nasm.us,下载版本:nasm-2.13.03-installer-x64.exe 需要将NASM安装目录添加至Windows系统环境变量Path中 5,打开VS Tools中“VS2015 x86 本机工具命令提示符”提示符,切换至GmSSL目录; 6,执行perl Configure VC-WIN32 7,执行nmake 8,编译完成。 本步骤同样适用与OpenSSL,已在OpenSSL-1.1.1-pre7版本上测试通过。 来源: oschina 链接: https://my.oschina.net/u/4346209/blog/3222807

OpenSSL和GmSSL在Windows下编译过程

半城伤御伤魂 提交于 2020-04-07 07:40:31
OpenSSL和GmSSL在Windows下编译过程 (2018-05-31 15:02:13) 转载 ▼ 标签: openssl gmssl 分类: OpenSSL 本文用于记录GmSSL-2.0在Windows下的编译过程。 1,环境:Win7-x64,VS2015,编译WIN32库; 2,下载GmSSL-2.0源码; 3,编译:参考GmSSL官网编译说明,链接地址http://gmssl.org/docs/install.html 4,需要按照ActivePerl和NASM; NASM下载地址:www.nasm.us,下载版本:nasm-2.13.03-installer-x64.exe 需要将NASM安装目录添加至Windows系统环境变量Path中 5,打开VS Tools中“VS2015 x86 本机工具命令提示符”提示符,切换至GmSSL目录; 6,执行perl Configure VC-WIN32 7,执行nmake 8,编译完成。 本步骤同样适用与OpenSSL,已在OpenSSL-1.1.1-pre7版本上测试通过。 来源: oschina 链接: https://my.oschina.net/u/4387121/blog/3222594