Native TLS (iohNativeTLS)
Een TLS 1.3- en TLS 1.2-implementatie die volledig in Object Pascal is geschreven bovenop de sgcCrypto-units, zodat er helemaal niets te implementeren valt, op Windows, Linux, macOS, iOS of Android. Zet TLSOptions.IOHandler := iohNativeTLS op een client, of SSLOptions.IOHandler := iohNativeTLS op een server, inclusief de IOCP- en EPOLL-serverengines. TLSOptions.NativeTLS_Options.Groups en TLSOptions.NativeTLS_Options.CipherSuites nemen lijsten in OpenSSL-stijl, gescheiden door dubbele punten. Ze staan standaard op X25519MLKEM768:X25519:secp256r1:secp384r1 en TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256 plus de standaardwaarden voor TLS 1.2, zodat een handshake met een peer die dat ondersteunt post-quantum hybride is zonder configuratie.
TLS 1.3 en TLS 1.2. TLSOptions.Version op een client, en SSLOptions.Version op een server, is de laagst toegestane versie: tls1_2 of tlsUndefined onderhandelt TLS 1.3 of TLS 1.2, en tls1_3 staat alleen TLS 1.3 toe. Vermeld voor alleen TLS 1.2 uitsluitend TLS 1.2-suites in NativeTLS_Options.CipherSuites. TLS 1.2 biedt standaard ECDHE_ECDSA en ECDHE_RSA met AES-128-GCM, AES-256-GCM en ChaCha20-Poly1305, terwijl de ECDHE AES-CBC-suites en de RSA-sleuteluitwisseling er alleen zijn als je ze zelf noemt. Het gebruikt X25519, secp256r1 of secp384r1, omdat de hybride post-quantum groepen alleen in TLS 1.3 bestaan. TLS 1.2 komt met de extended master secret van RFC 7627 en de downgradebescherming van RFC 8446 aan beide kanten, en weigert hernegotiatie en SHA-1-handtekeningen.
Wat hij niet doet. De engine spreekt alleen TLS 1.3 en TLS 1.2, zonder TLS 1.1, TLS 1.0 of SSL. Er is geen sessiehervatting en geen PSK, geen 0-RTT en geen QUIC. De vertrouwde roots komen uit TLSOptions.RootCertFile, plus de roots die het besturingssysteem vertrouwt wanneer NativeTLS_Options.UseSystemRoots op True staat, gelezen uit de Windows ROOT-store of een CA-bundelbestand en nooit uit de macOS- of iOS-sleutelhanger of de Android-store, en het component-event OnSSLVerifyPeer is er niet voor beschikbaar, de engine heeft eigen verificatiehooks. Blijf bij OpenSSL of een platform-backend wanneer je daar iets van nodig hebt.
Hij maakt deel uit van sgcCrypto, dus hij wordt geleverd vanaf de Standard-editie en in het standalone sgcCrypto-pakket.