SM9算法C++实现系列目录:
前段时间有些同志询问源码,还有些在问SM3、SM4代码,甚至是十六进制的转换的代码,所以这次整理后,直接提供全部源码,大家可以在下面的链接处下载。
新的下载地址:https://download.youkuaiyun.com/download/yaoyuanyylyy/87462291
新版本添加了miracl库的编译项目,增加了 x64 的支持。
这是一个VC++项目,在win10 64位上用vs2019写的。
在文件 Parameters.h 中,定义了一个宏:
#define SELF_CHECK 1
表示代码中的密钥使用了 《GMT 0044-2016 SM9标识密码算法:第5部分 参数定义》 中的测试部分所指定的密钥。bin文件夹下编译好的程序是开启了这个定义的。所以测试时在界面上的私钥都是不变的。要想随机生成密钥,需要关闭该宏定义之后自行重新编译。
因为SM9是基于miracl实现的,有些同志在编译库的时候遇到些问题。所以此处也将miracl的库提供给大家。
同时把国密标准的SM9文件也附上。
bug修复:
SM9 的 SM9.cpp 的 keyExchange中,的 “check R is on G1” 应该检查对方的临时公钥,而不是己方的,敲代码走神了。
旧版本地址(miracl只提供x86库):https://download.youkuaiyun.com/download/yaoyuanyylyy/10780623