Qt 5 opensslによるRSAデジタル署名

3112 ワード

1、環境設置
win7 64
qt-opensource-windows-x 86-5.9をインストールします.0.exe以降、ダウンロードアドレス
インストールWin 32 OpenSSL-1_0_2L.exeはアドレスをダウンロードして、最新バージョンはproの配置の問題のためかもしれなくて、いつも成功しないで、みんなに注意することを望みます
2、Qt 5工程の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;
コンパイルが通過し、実行がフラッシュバックしなくなりました