繁体   English   中英

将带有证书处理的2007 C ++ Builder SOAP代码移动到Delphi2018-Indy10

[英]Moving 2007 C++Builder SOAP code with certificate handling to Delphi2018-Indy10

我有一个用C ++ / Builder 2007编写的.dll,它使用GSOAP连接到Web服务,它似乎需要一个.PEM文件的位置和它的密码(此文件是由。服务组织进行身份验证和加密)。 除了gsoap之外,它还使用OpenSSL版本0.9.8

现在,我需要将SSL更新到TLS1.2,而openSSL 0.9.8并没有涵盖这一点,并且不可能更新到版本1.0.2(我可以使用的最新版本),因为我在OpenSSL代码中遇到了很多错误在编译。

转换为Delphi 2007并没有真正帮助-因为Indy也缺少必需的工具(似乎不支持SOAP1.2)。

但是,移至Ddelphi2018在我的TODO列表中,因此我将该过程的代码移至了一个独立程序(目前)至Delphi。 除了一件事,一切看起来都不错:

在gsoap文件stdsoap2.h中,有:

struct SOAP_STD_API soap
…
  unsigned short ssl_flags;
  const char *keyfile;
  const char *password;
…

C ++代码使用此

  struct soap soap;
  memset(&soap, 0, sizeof(soap));
  ...
  soap.keyfile = Parms->pCERTIFICAAT;    // is .pem bestand, including path
  soap.password = "(Certww)";            // hardcoded in deze code....
  ...

但是,在Delphi / Indy中,我看不到添加此数据的任何方法。 互联网中的searc确实提供了用户名和密码的示例,但是在keyfile上进行seartching并没有显示任何匹配...

这在gsoap中有什么作用,在Delphi(2018)/ Indy10中又如何?

确实-10.2 Tokyo ..我们找到了将WSDL重新导入到Delphi中并使用我们已经拥有的用于访问证书的代码的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM