OpenSSL (iohOpenSSL) est le transport TLS multiplateforme de sgcWebSockets. Il fonctionne sur chaque plateforme ciblée par la bibliothèque et constitue le choix par défaut sur la plupart d'entre elles, avec la plus large couverture de protocoles et de chiffrements de tous les backends. Activez-le en définissant TLSOptions.IOHandler sur iohOpenSSL, puis déployez les bibliothèques d'exécution OpenSSL avec votre application.
TLS multiplateforme implémenté sur le socket d'Indy, disponible sur chaque plateforme ciblée par sgcWebSockets.
OpenSSL est l'implémentation TLS multiplateforme que sgcWebSockets superpose au socket d'Indy. Il est disponible sur Windows, Linux, macOS, iOS et Android, et constitue le backend par défaut sur la plupart d'entre eux. Choisissez OpenSSL lorsque vous avez besoin d'un comportement TLS identique sur chaque plateforme, ou lorsque vous dépendez d'une fonctionnalité que seul OpenSSL expose.
Le backend couvre TLS 1.0 à TLS 1.3 avec la plus large sélection de suites de chiffrement de tous les transports sgcWebSockets. Vous pouvez faire confiance à une autorité privée ou auto-signée avec une racine CA personnalisée (RootCertFile), présenter un certificat client pour le TLS mutuel et annoncer des protocoles applicatifs tels que http/1.1 via ALPN. Comme les quatre backends partagent la même API TLSOptions, du code écrit pour OpenSSL passe à un backend natif en changeant uniquement la ligne IOHandler.
Le compromis se situe au niveau du déploiement. OpenSSL est une dépendance externe, vous livrez donc ses bibliothèques d'exécution avec votre application et les maintenez à jour. Sous Windows, cela signifie libssl-3.dll et libcrypto-3.dll, sous Linux et Android les fichiers .so correspondants, et sur les plateformes Apple les fichiers .dylib. Si vous souhaitez un TLS natif sans aucune bibliothèque à déployer, regardez SChannel sous Windows ou les backends natifs Android et Apple.
Code
Activer OpenSSL
Définissez TLSOptions.IOHandler sur iohOpenSSL, puis déployez les bibliothèques OpenSSL avec votre build.