OpenSSL所有版本的变化,从1.1开始架构有所变化,生成的lib名称也有所不同了,以及对Qt的影响

The complete explanation is that 1.0.x and 1.1.x do not have the same naming conventions for the generated libraries. OpenSSL 1.1.x has moved into what they call the “unified build system” and changed themselves the names of the libraries. This was done on purpose, mainly because these libraries are not binary compatible and should not be intermixed into projects or dlls deployed to replace 1.0.x with 1.1.x, and vice versa. So while previously in 1.0.x there were libeay32 and ssleay32, they are in 1.1.x named libssl and libcrypto. That’s what happened upstream in OpenSSL. Read here also: https://marc.info/?l=openssl-dev&m=147223063610803&w=2 and there are tons of other discussions online you can tap to.

Beyond that, I also manipulate the suffixes in my builds. Namely, I append the MD[d] and MT[d] suffixes, so that it can be clearer when someone uses a library. This may not be very important when using DLLs, but with static builds chaos ensues if you mix them. So I made my own patches to produce these suffixes to the libraries.

I think that’s a complete answer now. I have also a suggestion for you:

You can download my build scripts if you still like to change the names of the library files in a different way and look at the patch, and modify it accordingly.
You can also skip the application of the patch and then you will get exactly the filenaming conventions of OpenSSL upstream in different builds.

I hope this helps.

http://www.npcglib.org/~stathis/blog/precompiled-openssl/

其实从1.0.2k就已经开始了

http://www.linuxfromscratch.org/blfs/view/svn/postlfs/openssl.html

对QT的影响:

Things that Broke in Qt

Here‘s what‘s broken in the dev branch of Qt when building openssl master as of 6 Feb 2015.

  • DH - we were directly accessing p and q to set the DH params to primes embedded in Qt. We can probably replace this with SSL_CTX_set_dh_auto(ctx, 1). Another option suggested by Steve Henson is to save the DHparams we‘re using at the moment then use d2i_DHparams to load them in. This is compatible with openssl versions that don‘t have the dh_auto option.
  • ctx->cert_store - we were directly accessing the cert_store field of SSL_CTX. We can probably replace this with X509_STORE *SSL_CTX_get_cert_store(SSL_CTX *ctx) [Fixed in dev]
  • session->tlsext_tick_lifetime_hint - we were directly accessing the lifetime hint of the session. [A new API to access this field has been added]
  • cipher->valid - we were directly accessing the valid field of SSL_CIPHER. No replacement found. [This turned out not to be needed and so will be removed].

https://wiki.openssl.org/index.php/1.1_API_Changes

所有openssl版本的变化列表:

https://abi-laboratory.pro/tracker/changelog/openssl/1.0.2j/log.html

https://abi-laboratory.pro/tracker/timeline/openssl/

https://www.openssl.org/news/openssl-1.0.2-notes.html
https://www.openssl.org/news/changelog.html

时间: 2024-08-23 22:52:18

OpenSSL所有版本的变化,从1.1开始架构有所变化,生成的lib名称也有所不同了,以及对Qt的影响的相关文章

[openssl]openssl特定版本安装

卸载旧版本 OpenSSL1. apt-get purge openssl2. rm -rf /etc/ssl #删除配置文件编译与安装 OpenSSLprefix 是安装目录,openssldir 是配置文件目录,另外建议安装两次,shared 作用是生成动态连接库. 第一次: ./config --prefix=/usr/local --openssldir=/usr/local/sslmake depend make && make install 第二次:./config shar

openssl 查看版本和配置文件位置

进入命令行输入openssl version 可查看版本信息,如下图: 输入openssl version -a命令可查看更详细的信息 配置文件就位于OPENSSLDIR目录下. 原文地址:https://www.cnblogs.com/liyuchuan/p/12402025.html

qt获取以来的openssl的版本

#include <QDebug> #include <QSslSocket> qDebug()<<QSslSocket::sslLibraryBuildVersionString(); 原文地址:https://www.cnblogs.com/liyuchuan/p/12408235.html

RAC4——架构和变化

1.RAC的架构 2.由单实例变RAC的变化   1.SGA的变化: 和传统的单实例相比,RAC 实例中SGA最显著的变化时多了一个GRD(Global resource directory)部分. 2.后台进程的变化: 1) LMSn进程:这个进程是cache fusion 的主要进程,负责数据块在实例间的传递,对应的服务叫做GCS(global cache service ),这个进程的名称来源于Lock Manager Service.从oracle9开始,oracle对这个服务重新命名成

echars的矩形数图根据大小根据一个值变化,颜色跟随另外一个值变化

$.post('/fapidata/news_credit', function (data_all) {$("#managedNum").html(data_all.length); var data =[] ; var managedNum_color = ['#7FAE90','#9FDABF','#D48265','#61A0A8','#2F4554','#C23531']; var trend_ratio=[];//定义一个信用指数的数组 //信用指数数组排序(小到大) fo

Windows7 QT5.6.0(64位)使用mysql(64位)环境搭建详解

1 说明 使用环境为:Windows7 VS2015 QT5.6.0(64位),MYSQL 5.7.13(64位). 网上各种错误.模糊.抽象的资料,配置环境花了半天,痛定思痛,总结出来,方便后来人. 原创,转载请注明出处. 2 方法/步骤 2.1 下载和安装QT和MYSQL QT和MYSQL安装部分先后顺序.(VS2015当然也要安装,此处不做详细描述). 2.1.1 下载安装MYSQL 2.1.1.1 下载MYSQL 下载地址:http://dev.mysql.com/downloads/m

【jQuery基础学习】10 简单了解jQuery Mobile及jQuery各个级别版本的变化

关于 jQuery Mobile jQuery Mobile是为了填补jQuery在移动设备应用上的一个新项目.它应用了HTML5和CSS3. 主要特性 基于jQuery构建. 采用与jQuery一致的核心和语法,还使用了jQuery UI的代码和模式. 兼容绝大部分手机平台 轻量级的库 模块化构建 HTML5标记驱动的配置 渐进增强原则 响应设计 强大的Ajax导航系统 易用性 支持触摸和鼠标事件 统一的UI组件 强大的主题化框架 基本应用 默认情况下,移动浏览器,会像在大屏幕的Web浏览器那

编译ios版本的librtmp+openssl

http://blog.csdn.net/cjj198561/article/details/28955461 编译librtmp需要先编译openssl,因为librtmp依赖openssl 首先编译openssl: 把以下内容保存为shell脚本: #!/bin/sh VERSION="1.0.1h" #指明openssl的版本信息,比如下载的是openssl-1.0.1h.tar.gz那么对于就填写1.0.1h SDKVERSION="7.1" #指明ios

cocos2dx-游戏apk上传Google Play警告:OpenSSL版本有多个安全漏洞,建议您尽快更新 OpenSSL

最近游戏上传Google play是警告 嘿嘿,经过各种百度,终于找到一个解决方案:http://blog.csdn.net/lwuit/article/details/45577811 Openssl 安全漏洞升级库 Cocos2dx Curl 1.0.1h版本 下载完资源后,把文件夹下面的内容整体替换到工程文件对应的文件下面:cocos2dx/platform/third_party/android/prebuilt/libcurl/libs 注意:我自己在实际操作过程中,发现替换后,每次编