QT +OpenSSL配置
openssl
传输层安全性/安全套接层及其加密库
项目地址:https://gitcode.com/gh_mirrors/ope/openssl
免费下载资源
·
QT +OpenSSL配置
1 查看自己QT支持的OPenSSL版本号
#include <QDebug>
#include <QtNetwork/QSslSocket>
#include <QDebug>
#include <QNetworkAccessManager>
void checkSslSupport() {
qDebug() << "SSL support:" << QSslSocket::supportsSsl()
<< "\nSSL library build version:" << QSslSocket::sslLibraryBuildVersionString()
<< "\nSSL library runtime version:" << QSslSocket::sslLibraryVersionString();
QNetworkAccessManager *manager = new QNetworkAccessManager();
qDebug() << manager->supportedSchemes();
}
1.1 查看版本号
- 新建项目testOpenSSL
- pro文件中加入
QT += network
- 在头文件中加入
#include <QDebug> #include <QSslSocket>
qDebug()<<QSslSocket::sslLibraryBuildVersionString();
1.2 是否配置了OPenSSL
//看看是否配置了ssl
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
qDebug() << manager->supportedSchemes();
2 安装OPenSSL
安装OPenSSL有两种方式:
- 下载已经编译好的库,放到指定位置
- 自己编译源码
2.1 下载已经编译好的库
https://slproweb.com/products/Win32OpenSSL.html
- 找到自己QT支持的版本,我的版本是“OpenSSL 1.1.1g 21 Apr 2020”
安装完成之后,运行刚才的程序:
已经支持SSL了,方便快捷。
需要将对应的库放到可执行的文件,同级文件下,否则会出错:
2.2 自己编译代码
https://www.openssl.org/
https://blog.csdn.net/u013052326/article/details/111713932
2.2.1 下载perl
perl:https://www.perl.org/get.html
检查环境变量,如果软件没有自己加入,请手动加入
验证,出现以下内容则表示成功
2.2.1 下载OPenSSL源码
以OpenSSL 1.0.2 22 Jan 2015为例
以管理员身份运行:
cd /d D:\vs\openssl-1.0.2.tar\openssl-1.0.2
进入源文件
- 配置
32位
perl Configure VC-WIN32 no-asm --prefix="D:\\vs\\openssl-1.0.2.tar\\build32"
64位
perl Configure VC-WIN64A no-asm --prefix="D:\\vs\\openssl-1.0.2.tar\\build64"
release版本:VC-WIN64A代表是64位release 库;VC-WIN32 代表是32位release库
debug版本:debug VC-WIN64A ; debug VC-WIN32A
no-asm:编译过程中不使用汇编代码加快编译过程。
–prefix=路径指定生成路径
编译动态库:
nmake -f ms\ntdll.mak
编译静态库:
nmake -f ms\nt.mak
测试动态库:
nmake -f ms\ntdll.mak test
测试静态库:
nmake -f ms\nt.mak test
安装动态库:
nmake -f ms\ntdll.mak install
安装静态库:
nmake -f ms\nt.mak install
清除上次动态库的编译,以便重新编译:
nmake -f ms\ntdll.mak clean
清除上次静态库的编译,以便重新编译:
nmake -f ms\nt.mak clean
–cross-compile-prefix 交叉编译参数
–prefix=DIR 安装目录设置,make install指令会安装到指定目录。
–debug 使用调试符号和零优化级别构建OpenSSL
–release 在不调试符号的情况下构建OpenSSL。这是默认设置
–libdir=DIR 安装目录树顶部(请参阅–prefix选项)下将安装库的目录的名称。
默认情况下,这是“lib”。
请注意,仅在Windows上,.lib文件将存储在此位置。 dll文件将始终安装到“bin”目录。
–openssldir=DIR OpenSSL配置文件的目录,以及默认证书和密钥存储。
默认设置为:
Unix:/usr/local/ssl
Windows:C:\Program Files\Common Files\SSL或C:\Program Files(x86)\Common
Files\SSLOpen
VMS:SYS$COMMON:[OPENSSL-COMMON]
no-tests 不要构建测试程序或运行任何测试 no-shared 不要创建共享库,只创建静态库。
- 生成makefile
生成makefile,64位:ms\do_win64a ;32为:ms\do_ms
nmake -f ms\ntdll.mak
(ntdll 代表动态库,nt 代表静态库)- 安装
nmake -f ms\ntdll.mak install
- 测试
nmake -f ms\ntdll.mak test
将生成的库,放入对应的qt文件位置 E:\qt_5.5\5.5\mingw492_32\bin (我是32位的)
GitHub 加速计划 / ope / openssl
20
1
下载
传输层安全性/安全套接层及其加密库
最近提交(Master分支:3 个月前 )
5b94140b
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/26462)
3 天前
1dafff06
When a requested parameter has a non-NULL result pointer,
and the error isn't simply that the result buffer is too
small, don't return a non-zero result size.
Returning a non-zero result size that isn't larger than the
user's provided space is an indication that a result of
that size was actually written, inviting trouble if the
error indication was inadvertenly lost.
Also, in such cases (wrong type, data can't be converted to the
requested type when otherwise supported, ...) there is nothing useful to
be done with the return size value, it can't help to address the
problem.
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/26436)
3 天前
更多推荐
已为社区贡献1条内容
所有评论(0)