Obecnie Indy obsługuje tylko OpenSSL w wersji 1.0.2, a wielu klientów pytało nas o wsparcie dla OpenSSL 1.1. Choć OpenSSL 1.0.2 jest obecnie używalny, ponieważ obsługuje TLS 1.2, który jest standardową wersją protokołu, zespół OpenSSL przestanie wspierać API 1.0 pod koniec tego roku, co oznacza, że nie będą już wydawane aktualizacje ani poprawki dla tych bibliotek — to złe wieści dla biblioteki Indy.
Po wielu pracach wewnętrznych wydaliśmy nową wersję biblioteki sgcWebSockets, która obsługuje API OpenSSL 1.1.
obsługiwane od sgcWebSockets 4.3.2
Obecnie dostępne są 2 wersje:
- Wersja domyślna: będzie taka sama jak wcześniejsze wersje, wymaga zainstalowanego Indy w twoim IDE.
- Wersja Indy: to niestandardowa wersja Indy, ze wsparciem OpenSSL API 1.1 i niewymagająca instalacji Indy. Pliki Indy zostały zmienione, więc możesz utrzymać własną bibliotekę Indy, kompilując sgcWebSockets z naszymi niestandardowymi źródłami Indy.
Aby włączyć OpenSSL 1.1, otwórz OpenSSL_Options i wybierz, którego API chcesz użyć: oslAPI_1_0 lub oslAPI_1_1. Przykład dla klienta:
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;
Następnie możesz wdrożyć biblioteki OpenSSL 1.1 zamiast OpenSSL 1.0.2, którego Indy używa domyślnie. W zależności od systemu operacyjnego musisz wdrożyć biblioteki openSSL lub nie.
| Platforma | API 1.0 | API 1.1 | Static / Dynamic Linking |
| Windows (32-bit i 64-bit) | libeay32.dll and ssleay32.dll | libcrypto-1_1.dll and libssl-1_1.dll | Dynamiczne |
| OSX | libcrypto.dylib, libssl.dylib | libcrypto.1.1.dylib, libssl.1.1.dylib | Dynamiczne |
| Urządzenie iOS (32-bit i 64-bit) | libcrypto.a and libssl.a | libcrypto.a and libssl.a | Statyczne |
| Symulator iOS | libcrypto.dylib, libssl.dylib | libcrypto.1.1.dylib, libssl.1.1.dylib | Dynamiczne |
| Urządzenie Android | libcrypto.so, libssl.so | libcrypto.so, libssl.so | Dynamiczne |
