OpenSSL所有版本的变化,从1.1开始架构有所变化,生成的lib名称也有所不同了,以及对Qt的影响
2017-02-06 23:40
411 查看
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的影响:
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
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
相关文章推荐
- [置顶] 关于不同对象且属性名称也不一样的两个对象之间的复制以及动态对象生成
- 使用Qt5.7.0 VS2015版本生成兼容XP的可执行程序 good(从VS2012 update1开始支持xp和c++11)
- iOS系统架构以及lib.a生成介绍
- YY语音从4.0版本开始是基于Qt的开发过程,以及碰到的问题
- “变化”、“复用”、“抽象”、“稳定”影响着软件设计模式,架构,开发方法
- 所有版本的 QT 编译安装方法
- 还原Wss3.0内容数据库时遇到:"ComputerName\Microsoft##SSEE 上的 WSS_Content 包含用户定义的架构。数据库在能够使用之前必须为空。请删除所有表、存储过程以及其他对象,或使用其他数据库。 " 的提示,无法加载内容数据库
- VS2005发布网站问题及"aspnet_merge.exe”已退出,代码为 1的错误以及所有代码文件生成一个dll
- Castle中的实体类生成工具(.net1.1版本中提供)
- Qt中如何禁掉所有UI操作以及注意事项
- Qt最新版本4.4.3 OpenSource版下载链接以及MinGW编译器下载
- asp.net 2.0 与1.1 在生成的前台页面内容方面的一点不同
- qt中解决不同平台间编码问题以及登录窗口写法
- QT 4.6.0 (win32 opensource for VC2008) 安装,以及openssl和mysql支持
- 提供Qt所有版本的下载(不含商业版)
- 【转载】"变化"、"复用"、"抽象"、"稳定" 影响着软件设计模式,架构,开发方法
- 将一个 LIB 中的所有 OBJ 名称和类型输出到一个物理文件
- asp.net 2.0 与1.1 在生成的前台页面内容方面的一点不同
- 动态生成的IFRAME,设置SRC时的,不同位置带来的影响
- 所有版本的 QT 编译安装方法