GmSSL

支持国密算法和标准的 OpenSSL 分支
授权协议 Apache-2.0
开发语言 C/C++
所属分类 程序开发、 加密/解密软件包
软件类型 开源软件
地区 国产
投 递 者 慕麒
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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()。

  • gmssl 调试 WireShark: ((ip.dst == 192.168.1.22 && ip.src == 192.168.1.20) || (ip.dst == 192.168.1.20 && ip.src == 192.168.1.22)) && tcp.port==44330 && tcp.len>0 TASSL v1.0.2o tassl102 s_server -accept 4

  • 安装GMSSL 一、关于GmSSL GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码)算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具,可以用于构建PKI/CA、安全通信、数据加密等符合国密标准的安全应用。GmSSL项目是OpenSSL项目的分支,并与OpenSSL保持

 相关资料
  • 根据,以下是它支持的密码: 我正在端口443上运行一个简单的node.js服务器。运行时,以下是密码: 我不明白的是,为什么实际支持的密码列表要短那么多? 更令人困惑的是,当我在node中获得支持的密码列表时,我会发现一个很长的列表: ['AES128-GCM-SHA256','AES128-SHA','AES128-SHA256','AES256-GCM-SHA384','AES256-SHA'

  • Transt secret后端处理在途数据的加密函数。Vault不存储发送到后端的数据。它也可以被视为“加密作为一种服务”。 是否支持使用secp192r1曲线的ECDSA? -创建指定类型的新命名加密密钥,以后可用于加密/解密或签名/验证。它是否创建了私有和公共密钥对?是否有获取/输出公钥的方法? 是否可以创建执行加密操作但不返回私钥的自定义秘密后端?

  • 本文向大家介绍标准PHP的AES加密算法类,包括了标准PHP的AES加密算法类的使用技巧和注意事项,需要的朋友参考一下 分享一个标准PHP的AES加密算法类,其中mcrypt_get_block_size('rijndael-128', 'ecb');,如果在不明白原理的情况下比较容易搞错,可以通过mcrypt_list_algorithms函数查看你需要的加密算法标识。 以上就是本文所述的全部内

  • 本文向大家介绍mllib支持的算法?相关面试题,主要包含被问及mllib支持的算法?时的应答技巧和注意事项,需要的朋友参考一下 大体分为四大类,分类、聚类、回归、协同过滤。  

  • 我得到了一个错误: 不支持的密码算法(AES-256-GCM)(运行时错误) 但我似乎有所有的要求: $openssl enc-help 2>&1 grep gcm -AES-128-ECB-AES-128-GCM-AES-128-OFB -AES-192-ECB-AES-192-GCM-AES-192-OFB -AES-256-ECB-AES-256-GCM-AES-256-OFB Ruby解释

  • 我需要一些人帮我组织一个团体...我在一个Laravel集合中有一些对象,下面是一些json表示形式的示例数据: 我希望能够按组名对这些对象进行分组,但保持序列不变,并且重复出现两次或更多次的键,如下所示: 我已经找到了一种这样做的方法:我迭代每个对象,在前面那些序列号不是相应的对象中查找OCCurrences,并且我向对象添加一个新的键,当满足前面的条件(即添加我找到的拆分的计数)时更改这个名称

  • 介绍 Hutool针对Bouncy Castle做了简化包装,用于实现国密算法中的SM2、SM3、SM4。 国密算法工具封装包括: 非对称加密和签名:SM2 摘要签名算法:SM3 对称加密:SM4 国密算法需要引入Bouncy Castle库的依赖。 使用 引入Bouncy Castle依赖 <dependency> <groupId>org.bouncycastle</groupId>

  • 分支和标签 Subversion不区分文件系统空间和“分支”空间;分支和标签都是普通的文件系统目录,这恐怕是CVS用户需要逾越的最大心理障碍,所有信息在第 4 章 分支与合并。 警告 因为Subversion把分支和标签看作普通目录看待,一直要记住检出项目的trunk(http://svn.example.com/repos/calc/trunk/),而不是项目本身的(http://svn.exa