У меня есть .dll, написанная на C ++ / Builder 2007, которая использует GSOAP для своих подключений к веб-сервису. Кажется, требуется местоположение файла .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 я не вижу способа добавить эти данные; Поиски в интернете приводят примеры имени пользователя и пароля, но поиск по ключевому файлу не показывает никаких совпадений ...
Что это делает в gsoap и как сделать то же самое в Delphi (2018) / Indy10?