我有一个用C ++ / Builder 2007编写的.dll,它使用GSOAP连接到Web服务,它似乎需要一个.PEM文件及其密码的位置(此文件是从一个.pfx文件创建的)由服务组织提供以进行身份验证和加密)。除了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中又如何?
答案 0 :(得分:0)
确实-10.2东京.. 我们找到了将WSDL重新导入到Delphi中并使用我们已经拥有的用于访问证书的代码的解决方案。