OpenSSL 1.1.1 版提供了对国密 SM4、SM3、SM2 算法的支持。对于 SM2 算法,在源码的 crypto/sm2 目录下,sm2_sign.c 文件中实现了 SM2 签名与验签, sm2_crypt.c 文件中实现了 SM2 加密与解密,这些源码是很好的学习范例。但是 sm2.h, sm3.h, sm4.h 这些头文件是放在源码的 crypto/include/internal 目录下,这就导致用户不能直接调用到 sm2_sign.c 和 sm2_crypt.c 中实现的函数。如果用户需要做 SM2 签名验签或加解密,需要使用统一的 EVP 抽象接口。

有时候做 SM2 签名验签时,我们并不想通过调用 OpenSSL 的 EVP 接口来实现,调用 EVP 接口需要了解很多 OpenSSL 自定义的数据类型和函数。为了能在不调用 EVP 接口的情况下做 SM2 签名和验签,我针对 OpenSSL 1.1.1 版本,编程实现了以下函数:包含预处理过程的SM3杂凑值计算、SM2 密钥对生成、SM2 签名、SM2验签以及相关的测试函数。程序代码已发布在以下网址:

https://github.com/greendow/SM2-signature-creation-and-verification

  • 请关注微信公众号:蛹破蝶飞 ID:zym161116
  • 为您带来昨夜今晨全球要闻资讯。信息来源于央视、环球网、人民日报、中新网、新华社等正规媒体单位,分享信息来源均可追溯。

基于OpenSSL 1.1.1版实现的SM2签名与验签C程序相关推荐

  1. 基于mbedTLS算法库实现国密SM2签名和验签算法

    网上有大量的基于OpenSSL实现的国密算法库,比如著名的GmSSL,可以直接拿来用.我自己常用的是mbedTLS的算法库,比较小巧简单,在mbedTLS的大数算法的基础上实现了国密SM2的签名和验签 ...

  2. php pfx加密,php基于sha1withRSA算法的签名和验签(pfx证书)

    在和第三方支付接口对接时经常会对数据进行签名和验签,sha1WithRSA也算是比较常用的一种签名加密算法.php开启openssl库后实现起来也算比较简单. 我在这里使用sha1withRSA算法来 ...

  3. asp版 vbscript RSA公钥加密 / 私钥解密 / 私钥签名 / 公钥验签(支持中文)分段加密解密

    最近有空在把自己的asp站点后端函数全部整理了下,在弄RSA的时候遇到了坑了,然后找到下面这位兄弟刚好发布的文章: https://blog.csdn.net/todaygods/article/de ...

  4. 使用 openssl 对文件签名和验签

    这里介绍:文件签名和验签做了什么,openssl 命令行工具进行签名和验签. 文件签名和验签 签名 有文件 test.txt,使用摘要算法(如 SHA256)计算出文件的摘要,再使用私钥(privat ...

  5. C++ 使用OpenSSL 基于SHA1摘要的RSA签名及验签 与Java平台互通

    文章目录 准备 C++ Java RSASignature.java RSAEncrypt.java Base64.java 准备 配置OpenSSL环境 配置VS2015环境 生成公私秘钥 然后你们 ...

  6. php signature解密,openssl RSA非对称加密、解密、签名、验签

    需要先了解的openssl系列函数 openssl_pkey_get_private 从证书中解析获取私钥,以供使用.成功,返回真实的密钥资源标识符(Resource ID),否则返回false op ...

  7. 【OP-TEE】 TA的签名与验签 基于optee 3.11

    TA的签名 以optee-os 3.11版本为例.在optee_os目录下,存放着签名的私钥和签名脚本. 工程目录/optee_os/keys/default_ta.pem 工程目录/optee_os ...

  8. JAVA/PHP/C#版RSA验签--转

    本文是上一篇文章的兄弟篇,上篇文章介绍了客户端的sdk中如何基于JAVA/PHP/C#使用RSA私钥签名,然后服务端基于JAVA使用RSA公钥验签,客户端签名/服务端验签的模式只能帮助服务端检查客户端 ...

  9. php pkcs7签名验签算法,OpenSSL 签名验签接口调用及测试

    OpenSSL 签名验签接口调用及测试 概述 项目中我们经常会遇到开发签名.验签功能.签名.验签是可信赖网络的一个重要功能.因此,我记录了OpenSSL 签名验签接口调用及测试. 相关测试代码 bas ...

最新文章

  1. php经典100例,php趣味100例 - php天平称物
  2. php建立数据库操作类,PHP数据库操作类的定义及使用
  3. Iphone是革了传统互联网的命
  4. QMainWindow多线程demo
  5. Python高效率遍历文件夹寻找重复文件
  6. mybatis注解动态sql_超全MyBatis动态SQL详解
  7. XE Delphi 判断字符为中文的方法
  8. mysql-mmm高可用架构
  9. React 18 RC 版本发布啦,生产环境用起来!
  10. Android IOS WebRTC 音视频开发总结(二六)-- webrtc调用堆栈
  11. python dataframe遍历_在pandas中遍历DataFrame行的实现方法
  12. Centos网络管理(五)-Bonding、网络组和网桥
  13. ListView的item监听事件,并且把值传递给另一个activity
  14. 使用jmeter快速生成测试报告
  15. aria2+RPC+m3u8下载工具(windows版)
  16. 关于iReport中纸张的大小 换算
  17. 为什么会“道可道非常道,名可名非常名”?
  18. 并行与分布式计算导论(七)MPI Collective Communication
  19. 判断字符串是中文或者英文
  20. 【2015盘点】这些手游如何“霸榜”

热门文章

  1. 【NI Multisim 14.0操作实例——最小系统电路】
  2. LateX 全文(局部)字体大小设置
  3. 多页面分页打印功能实现
  4. 【RabbitMQ】什么是RabbitMQ?RabbitMQ有什么用?应用场景有那些?
  5. 《让子弹飞》系列——小六子之死
  6. 【RAP】CAS PIA 快速浏览入口地址
  7. 鸿蒙系统是开放系统还是封闭系统,鸿蒙系统三挑战:应用如何兼容,生态怎么搭建,开放还是闭合...
  8. python工作流引擎_工作流,活动图和Python协程(一)
  9. java连接 mdx,olap4j连接sap hana的xmla服务mdx查询报错【已解决】
  10. Nginx笔记(一)Nginx