Currently, Indy only supports 1.0.2 OpenSSL version and several customers have asked us about support for OpenSSL 1.1. Although OpenSSL 1.0.2 is usable at this moment because supports TLS 1.2 which is the standard protocol version, OpenSSL Team will stop supporting 1.0 API at the end of this year, this means no more updates will be released and no more fixes will be applied to this libraries, so these are bad news for Indy library.
After a lot of internal work we have released a new version of sgcWebSockets library which supports OpenSSL 1.1 API.
supported from sgcWebSockets 4.3.2
So currently there are 2 versions:
To enable OpenSSL 1.1, just access to OpenSSL_Options and select which API you want use: oslAPI_1_0 or oslAPI_1_1. Example for client:
oClient := TsgcWebSocketClient.Create(nil); oClient.Host := '127.0.0.1'; oclient.Port := 443; oClient.TLS := True; oClient.TLSOptions.OpenSSL_Options.APIVersion := oslAPI_1_1; oClient.Active := True;
After that, you can deploy your OpenSSL 1.1 libraries instead of OpenSSL 1.0.2 which uses Indy by default. Depending of your Operating System you must deploy or not openSSL libraries.
Platform | API 1.0 | API 1.1 | Static / Dynamic Linking |
Windows (32-bit and 64-bit) | libeay32.dll and ssleay32.dll | libcrypto-1_1.dll and libssl-1_1.dll | Dynamic |
OSX | libcrypto.dylib, libssl.dylib | libcrypto.1.1.dylib, libssl.1.1.dylib | Dynamic |
iOS Device (32-bit and 64-bit) | libcrypto.a and libssl.a | libcrypto.a and libssl.a | Static |
iOS Simulator | libcrypto.dylib, libssl.dylib | libcrypto.1.1.dylib, libssl.1.1.dylib | Dynamic |
Android Device | libcrypto.so, libssl.so | libcrypto.so, libssl.so | Dynamic |
When you subscribe to the blog, we will send you an e-mail when there are new updates on the site so you wouldn't miss them.