gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 23:51:19 26 4
gpt4 key购买 nike

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

我发现的 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 已更改。

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

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

最佳答案

正如您所观察到的,OpenSSL 1.1 有另一个 API。目前,Indy 仅使用 1.0 调用,并且不使用异步处理等 1.1 特定功能。让 Indy 切换到 Open SLL 1.1 将是一次重大重构(请参阅下面的 Remy 评论)。

但是 Indy 使用的 OpenSSL DLL 并未被弃用。 Fulgan Reference WebSite目前有例如openssl-1.0.2o-i386-win32.zip 这是分支上可用的最新稳定版本as stated by the official OpenSSL source code 。您混淆了分支(1.0 vs 1.1 = API 更改)和修订版(1.0.2a vs 1.0.2o = 新修复)。

所以不用担心。如果您将 Indy 与 a proper Cypher Names list 一起使用和最新的 Fulgan DLL,您已经是最新且安全的了。有时比某些旧的 Linux 发行版更安全,后者可能落后于系统附带的修订版本。即使 TLS 1.3 仍远未成为强制要求,因为客户端尚未启用它。我确信当 1.1 的某些功能成为强制性的(或切换到 Windows SChannel API)时,Indy 团队将支持 1.1。

关于delphi - 升级 Indy 库以使用最新的 OpenSSL 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50481630/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com