Qt5使用openssl实现RSA数字签名

1、环境安装

win7 64

安装qt-opensource-windows-x86-5.9.0.exe或更高版本,下载地址

安装Win32OpenSSL-1_0_2L.exe 下载地址,最新版本可能因为pro配置问题,总不成功,希望大家提醒

2、在Qt5工程的pro中 填写

LIBS += -LC:/OpenSSL-Win32/lib/MinGW -llibeay32
LIBS += -LC:/OpenSSL-Win32/lib/MinGW -lssleay32
INCLUDEPATH += $$quote(C:/OpenSSL-Win32/include)


添加头文件

#include 
#include 
#include 
#include 
#include 




编译链接没有问题,运行发现当执行到PEM_write_RSAPrivateKey时报错:OPENSSL_Uplink(67C97000,08): no OPENSSL_Applink

按照网络上的方法尝试

在main文件中的包含头文件的下方加入OpenSSL的链接头文件(经测试放在在调用的mainwidow.cpp中也可以)

extern "C"{

#include "openssl/applink.c"

};

报错

C:\OpenSSL-Win32\include\openssl\applink.c:-1: In function 'void** OPENSSL_Applink()':
C:\OpenSSL-Win32\include\openssl\applink.c:95: error: invalid conversion from 'void* (*)()' to 'void*' [-fpermissive]
         OPENSSL_ApplinkTable[APPLINK_STDIN] = app_stdin;

……

大概是说指针转换出错,全部加上强转

OPENSSL_ApplinkTable[APPLINK_STDIN] = app_stdin;改为OPENSSL_ApplinkTable[APPLINK_STDIN] =(void*)app_stdin;

编译通过,运行不闪退了


你可能感兴趣的:(BUGS)