升级Indy库以使用最新的OpenSSL库

时间:2018-05-23 06:51:26

标签: delphi openssl indy indy10

用Delphi编写的Indy库升级到使用具有最新功能的最新OpenSSL库(例如TLS v1.3)的过程是什么?

我找到的Indy库的最后一个版本使用了libssl32.dll和ssleay32.dll DLL。最新的OpenSSL库生成libssl-1_1.dll和libcrypto-1_1.dll DLL。通过更改Indy libray中的DLL名称,OpenSSL DLL的动态加载失败,因为Indy中定义的许多函数与OpenSSL DLL的函数不匹配。因此,OpenSSL API发生了变化。

据我所知,Delphi源文件应该升级Indy库的IdSSL * .pas:

  • IdSSL.pas
  • IdSSLDotNET.pas
  • IdSSLOpenSSL.pas
  • IdSSLOpenSSLHeaders.pas
  • IdSSLOpenSSLHeaders_static.pas
  • IdSSLOpenSSLUtils.pas

2 个答案:

答案 0 :(得分:1)

OpenSSL库与最新功能1.1.x和支持的OpenSSL库1.0.x之间的API不兼容,必须重新设计Indy代码。这种升级没有简单/通用的过程。

答案 1 :(得分:1)

OpenSSL 1.1几乎可以与Indy的最新版本(主分支)一起使用。查看指向Indy github页面的此链接: https://github.com/IndySockets/Indy/pull/299