当前位置:   article > 正文

实现gmssl_以SM3算法为例,构建一个软硬协作算法加速器:SM3 软件实现篇

c++ sm3 gmssl

6d2277d693f8416e76facd120b3601fa.png
本文是本系列第二篇,我们将通过分析一个 SM3 的开源软件实现,来进一步了解算法的实现流程和软件实现思路

GitHub 上搜索 SM3 可以得到很多,各种语言实现的结果(当然也有 Verilog,比较少就是了)。

98f94609defce0a259830bd269bc8fe2.png
Github SM3 搜索结果

这里我们选择点赞数最高的 GmSSL,支持国密SM2/SM3/SM4/SM9/ZUC/SSL的OpenSSL分支

关于GmSSL​gmssl.org

在以下目录可以找到独立的 SM3 实现源代码

guanzhi/GmSSL​github.com
259b58c5e7fe0d5d4ac63b6144344ab2.png

SM3 的实现都在 sm3.c 中。sm3_hmac.c 中实现的是基于 sm3 实现的上层加密认证协议,这里我们暂不研究。

8fbbe711dee21bfeacdd38c1ee3a63e9.png
cropty/sm3

首次运行

PS:笔者看了下,目前的代码相比笔者当时研究的代码已经有了一些改动,但应该没有太大区别,还是以我当时的代码为准。

准备头文件,运行还需要两个头文件。从 openssl/sm3.h ; internal/byteorder.h 下载头文件

因为我们只需要运行 SM3 这部分,所以可以直接把头文件下载后放到当前目录,并修改 SM3.c 的头文件 include 部分。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/139563
推荐阅读
相关标签
  

闽ICP备14008679号