您的位置:首页 > 编程语言 > C语言/C++

SM2算法第十三篇:SM2密钥协商协议的C语言实现

2016-05-18 12:47 429 查看
记录每一点小小的进展,今天终于把”SM2的C语言实现”的程序成功的运行起来了,下面记录了我的操作流程。

资源下载:

1、sm2源程序(C语言实现)

下载链接

2、静态库和动态库(libeay32.dll,libeay32.lib,ssleay32.dll,ssleay32.lib)

下载链接

step1:在Windows系统上安装openssl

可参考SM2算法第七篇:Windows下Openssl安装与配置,在那篇博客中,我严格按照前辈们给出的步骤操作的,但是结果仍然报错,NNAME:fatal error U1077:"c\windows\system32\cl.exe”:return
code "0x2”,这个错误导致的结果是,没能成功产生静态库libeay32.lib和ssleay32.lib(位于out32文件夹下),动态库libeay32.dll,libeay32.lib,ssleay32.dll,ssleay32.lib(位于out32dll文件夹下)。这当然导致我的程序无法正常运行。所幸,今早down到了以上需要的静态库和动态库,并且将相应库添加在了out32(若没有该文件夹可以自己创建)和out32dll文件夹下。

不要忘了为VC添加头文件和静态链接库路径,可参考SM2算法第七篇:Windows下Openssl安装与配置

step2:找到sm2.dsw文件(文件类型是VC++6 Workspace),如下,用VC++6.0打开





step2:打开sm2.c —> 编译(compile) —> build,没有报错



step3:点击Go(F5)运行,报错



step4:将下载好的libeay32.dll拷贝到C:\Windows\System32目录下



step5:点击Go(F5)运行,结果一闪而过,控制台出现如下信息



step6:不要着急,没有犯错,以上信息是正常的。如何才能看到运行结果呢?用“Ctrl+F5”组合键的方式去运行程序即可出现如下结果



虽然程序运行结果已经出来了,但是,上面输出的结果都是些什么意思啊?这是我下一步需要搞懂的地方。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SM2 c语言 openssl