GmSSL 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
GmSSL 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
GmSSL 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
GmSSL 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
GmSSL 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 Apache Licene 2.0
开发语言 C/C++
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
提 交 者 SimonZhao
适用人群 未知
收录时间 2016-05-09

软件简介

GmSSL (http://gmssl.org) 是支持国密算法和标准的OpenSSL分支,增加了对国密SM2/SM3/SM4算法和ECIES、CPK、ZUC算法的支持,实现了这些算法与EVP API和命令行工具的集成。GmSSL由北京大学信息安全实验室(http://infosec.pku.edu.cn)开发和维护。

GmSSL的libcrypto密码库增加的密码算法包括:

  • SM2是国密椭圆曲线公钥密码标准,其中包含数字签名、公钥加密和密钥交换三个具体方案,以及一个256比特素域上的推荐椭圆曲线参数。GmSSL内置了SM2的推荐曲线参数,实现了SM2的签名算法和公钥加密算法。

  • SM3是国密密码杂凑算法标准,输出的杂凑值长度为256比特。

  • SM4是国密分组密码标准,又名SMS4,其分组长度和密钥长度均为128比特。GmSSL实现了SMS4密码及SMS4的ECB、CBC、CFB、OFB等工作模式。

  • X9.63 KDF是密钥派生函数国际标准之一,ECIES和SM2公钥加密方案依赖该算法,GmSSL实现了X9.63 KDF,并用于支持ECIES和SM2公钥加密。

  • ECIES (Elliptic Curve Integrated Encryption Scheme)是椭圆曲线公钥加密的国际标准,可用于加密数据。

  • CPK是由南相浩和陈钟设计的基于身份的密码。GmSSL实现了CPK的系统建立和密钥生成算法,生成的密钥可以用于DSA、ECDH、ECDSA、ECIES、SM2等公钥密码算法。

  • ZUC(祖冲之算法)是由我国设计的序列密码,以32位字为单位输出密钥流,其密钥长度和IV长度均为128比特。GmSSL的ZUC算法处于开发中。

GmSSL提供命令行工具gmssl,可用于生成SM2签名、SM3摘要、HMAC-SM3消息认证码,支持SM4和ZUC数据加解密。

$ echo -n abc | gmssl dgst -sm3
66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0

    显示SM2推荐椭圆曲线域参数

$ gmssl ecparam -text -noout -name sm2p256v1 -param_enc explicit

    在代码目录./certs/sm2/目录中给出了SM2证书的例子,可以用gmssl工具进行解析

$ gmssl x509 -text -noout -in certs/sm2/sm2-x509.pem
$ gmssl pkcs7 -print_certs -in certs/sm2/sm2-pkcs7.pem

    GmSSL新增的EVP对象包括EVP_sm3()、EVP_sm4_ecb()、EVP_sm4_cbc()、EVP_sm4_ofb()、EVP_sm4_cfb()和EVP_zuc()。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (11)

加载中
gmssl linux 命令sm4加密是什么? echo 123|/usr/local/bin/gmssl enc -e -sms4-ecb -k 123 -a 为什么加密出来不对
2020/07/20 19:44
回复
举报
SimonZhao软件作者
打分: 力荐
支持国产加密算法的开发与应用
2017/07/18 16:46
回复
举报
gg
2020/08/19 10:07
回复
举报
各种不行
2020/08/19 10:09
回复
举报
加油啊 。现在的版本,距离国密的标准,相差甚远。建议那些开发者们,先把SM2\SM3\SM4,以及国密SSL 先搞定了,再进行类似祖冲之之类的算法。 祖冲之算法,毕竟用的少。
2017/06/29 16:10
回复
举报
您好,编译安装Gmssl需要什么环境?我这边遇到一个错误/usr/bin/ld:crypto.map:1620: syntax error in VERSION script,您看一下如何解决?
2017/04/14 11:10
回复
举报
good 好东西
2017/02/25 21:31
回复
举报
啥时候出个JAVA版的国密库 #GmSSL#
2016/05/17 08:23
回复
举报
应该每个国家都搞一个OpenSSL分支嘛 #GmSSL#
2016/05/17 09:01
回复
举报
国密3 #GmSSL#
2016/05/17 09:24
回复
举报
好牛的分支 #GmSSL#
2016/05/17 11:45
回复
举报
更多评论
暂无内容
发表了博客
2019/12/19 11:21

GmSSL Build with VS2017

使用背景: 最近研究GB35114, 有关于sip协议部分,exosip的已经编译过,由于gb3511中采用的是国密算法,因此这里记录一下GMSSL在windows下的编译过程以及遇到的错误 详细GMSSL的介绍见:http://gmssl.org/ 根据文档说明,步骤如下: 在Window下的编译和安装 安装ActivePerl和Visual Studio,以管理员身份打开Visual Studio Tools下的Developer Command Prompt控制台并运行: perl Configure VC-WIN32 nmake nmake install 环境...

0
0
2020/06/15 22:15

Mac 编译 Gmssl 过程

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()) {     prin...

0
0
发表于程序人生专区
2020/12/10 20:32

GmSSL快速上手指南

## 一、快速上手 1. 下载源代码 我是下载到本地然后通过 Xftp 传到 Linux 环境里的。 然后解压至当前目录: ```shell $ unzip GmSSL-master.zip ``` 2. 编译与安装 Linux平台使用以下命令: ```shell $ ./config $ make $ sudo make install ``` 安装完后查看版本: ```shell $ gmssl version ``` 报错:gmssl: symbol lookup error: gmssl: undefined symbol: PBEPARAM_it, version OPENSSL_1_1_0d 经过上网查找资料(见参考二...

0
0
发表了博客
2019/05/13 15:25

GmSSL安装过程中出现的问题

GmSSL安装过程中出现的问题 在安装GmSSL的时候出现了很多的问题,为了解决这些问题也是花费了大量的时间,甚至还重新装了一次虚拟机。在解决问题的过程中向很多同学进行求助,但是他们都没有碰到和我类似的问题,因此只能自己一点点的尝试,花费了很长时间,直到上周六才弄好。后来我发现很多同学都和我有相同的问题(这里很想哭,为什么我之前求助的同学都没有遇到和我相同的问题~~~ )在这里补上一一篇博客吧,帮助那些还没有...

0
0
发表了博客
2020/02/05 16:33

gmssl生成国密证书

环境准备: 1. GMSSL可以执行程序   如果木有,自行前往下载 http://gmssl.org/   编译可以参考前篇 编译https://www.cnblogs.com/leehm/p/12066683.html    2. openssl.cnf ------openssl自带 # # OpenSSL example configuration file. # This is mostly being used for generation of certificate requests. # # This definition stops the following lines choking if HOME isn't # defined. HOME = . RA...

0
0
发表了博客
2018/05/03 15:11

Windows下gmssl使用记录

使用gmssl进行计算sm4,编译的版本是gmssl2.0,2.1版本编译不过去 第一步下载软件,下载Visual Studio 2010旗舰版、nasm-2.13.03-installer-x86、ActivePerl-5.22.4.2205-MSWin32-x86-64int-403863这三个软件, 注意vs版本不能太低,否则便宜的时候容易出现错误。 第二部使用命令进行编译,生成lib库和dll库,请选择好生成的版本,32位或者64位的dll库 perl Configure VC-WIN32 nmake nmake install 第三步:在vs2010中调用该接...

0
0
发表了博客
2019/05/12 22:57

基于Python的GMSSL实现

基于Python的GMSSL实现 团队任务 一、小组讨论对课程设计任务的理解 基于Python的GMSSL实现,即GmSSL开源加密包的python实现,支持其SM2/SM3/SM4等国密(国家商用密码)算法。 在和老师讨论以后,我们决定先分别跑通SM2/SM3/SM4算法,最后实现一个客户端/服务器之间安全通信的程序。 二、进行任务的功能划分和分工 SM2:杨靖涛 SM3:谭笑 SM4:刘津甫 安全通信的程序最后大家一起讨论实现。 三、任务的进度安排 第一周:熟悉Pytho...

0
0
发表了博客
2020/05/09 12:16

基于Gmssl的SM2加解密算法Demo

基于Gmssl的SM2加解密算法Demo 存储小咖 2018-12-28 18:38:11 4739 收藏 5 展开 GmSSL介绍 Gmssl介绍:http://gmssl.org/ 当然本文也是参考 http://gmssl.org/ 其中SM2为非对称算法 SM2密钥生成 pair<string, string> GenKey(void) { EC_KEY *keypair = NULL; EC_GROUP *group1 = NULL; keypair = EC_KEY_new(); if(!keypair) { cout << "Failed to Gen Key" << endl; exit(1); } group1 = EC_GROUP_new_by_curve_name(NID_sm2p...

0
0
发表了博客
2019/05/26 22:17

《基于Python的GMSSL实现》课程设计个人报告

《基于Python的GMSSL实现》课程设计个人报告 一、基本信息 姓名:刘津甫 学号:20165234 题目:GMSSL基于python的实现 指导老师:娄嘉鹏 完成时间:2019年5月6日---2019年5月26日 验收时间:2019年5月27日 小组成员:杨靖涛,谭笑,刘津甫 二、个人贡献 1. 收集相关资料并分享(相关博客、Python教程等) 2. 学习并搭建实验所需环境 3. 实现sm4算法的加解密 三、任务内容 1. 用Python语句调用gmssl以实现sm4 2. 实现用gmssl加密...

0
0
发表于运维专区
2020/12/16 10:58

GmSSL 与 OpenSSL 共存的安装方法

## 安装 OpenSSL 安装 `OpenSSL` 按照基本的安装方法(`yum、apt` 等)安装就好了,网上也有很多高版本的安装方法,这里就不做探讨了,一搜一大把 --- ## 安装 GmSSL > 要点就在于 `no-shared` :只编译静态库 ### 下载解压 ```bash # 下载 gmssl wget https://github.com/guanzhi/GmSSL/archive/master.zip # 解压 unzip master.zip ``` ### 编译 ```bash cd GmSSL-master # --prefix 指定 gmssl 的安装路径 # --openssldir 表...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
11 评论
127 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部