GmSSL 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
GmSSL 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
GmSSL 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache-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
回复
举报
该评论暂时无法显示,详情咨询 QQ 群:912889742
您好,编译安装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
回复
举报
更多评论
暂无内容
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
发表了博客
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
登录后可查看更多优质内容
返回顶部
顶部