本文属于《GmSSL国密加密算法库使用系列教程》之一,欢迎查看其它文章。
我们知道GmSSL有一个命令行工具gmssl.exe,可以通过命令实现很多的操作,同时GmSSL还提供了动态库,所以如果我们想调用GmSSL,有2种方法:
- 通过启动一个外部进程gmssl.exe的方式,传入执行命令,然后获取执行结果;
- 通过动态库的方式,直接调用函数。
以上2种方式,都有很多软件采用。
我们这里仅讨论通过动态库调用GmSSL,以下在Qt工程中调用GmSSL加密库为例进行说明。
一、在Win下调用GmSSL加密库
本机GmSSL默认安装在C:\Program Files\GmSSL目录下。
在pro文件中,在win32括号内,添加头文件路径和链接lib如下:
win32 {
INCLUDEPATH += $$quote(C:/Program Files/GmSSL/include)
LIBS += -L$$quote(C:/Program Files/GmSSL/lib) -llibcrypto -llibssl
}
然后在工程中就可以调用GmSSL函数了。
运行时,将GmSSL安装目录C:\Program Files\GmSSL\bin下的,libcrypto-1_1-x64.dll拷贝到,与exe同一目录下。
二、在Linux下调用GmSSL加密库
通常,为了与系统中OpenSSL不产生冲突,我们会将GmSSL编译为静态库。
仅需在pro文件中,unix括号内添加如下:
unix {
INCLUDEPATH += /usr/local/gmssl/include
LIBS += -L/usr/local/gmssl/lib -lcrypto -ldl
}
然后,在源文件中正常调用GmSSL函数即可。
由于链接的是静态库,所以,应用程序运行时,可以不依赖GmSSL的库文件,独立运行。
若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!
同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。