Native TLS (iohNativeTLS)
sgcCrypto 유닛 위에 전부 Object Pascal로 작성된 TLS 1.3 및 TLS 1.2 구현이므로, Windows, Linux, macOS, iOS, Android 어디에서도 배포할 것이 전혀 없습니다. 클라이언트에서는 TLSOptions.IOHandler := iohNativeTLS를, 서버에서는 SSLOptions.IOHandler := iohNativeTLS를 설정하며, IOCP와 EPOLL 서버 엔진도 포함됩니다. TLSOptions.NativeTLS_Options.Groups와 TLSOptions.NativeTLS_Options.CipherSuites는 OpenSSL 스타일의 콜론 구분 목록을 받습니다. 기본값은 각각 X25519MLKEM768:X25519:secp256r1:secp384r1과 TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256에 TLS 1.2 기본값을 더한 것이므로, 이를 지원하는 상대와의 핸드셰이크는 별도 설정 없이 포스트 퀀텀 하이브리드가 됩니다.
TLS 1.3 및 TLS 1.2. 클라이언트에서는 TLSOptions.Version, 서버에서는 SSLOptions.Version이 허용되는 최저 버전을 지정합니다. tls1_2 또는 tlsUndefined는 TLS 1.3과 TLS 1.2를 모두 협상하고, tls1_3은 TLS 1.3만 허용합니다. TLS 1.2만 사용하려면 NativeTLS_Options.CipherSuites에 TLS 1.2 스위트만 나열하세요. TLS 1.2는 기본으로 ECDHE_ECDSA와 ECDHE_RSA를 AES-128-GCM, AES-256-GCM, ChaCha20-Poly1305와 함께 제공하며, ECDHE AES-CBC 스위트와 RSA 키 교환은 직접 지정했을 때만 사용됩니다. 하이브리드 포스트 퀀텀 그룹은 TLS 1.3에만 존재하므로, TLS 1.2에서는 X25519, secp256r1 또는 secp384r1을 사용합니다. TLS 1.2에는 RFC 7627의 확장 마스터 시크릿과 양쪽 모두에 적용되는 RFC 8446의 다운그레이드 방지가 포함되며, 재협상과 SHA-1 서명은 거부합니다.
지원하지 않는 것. 이 엔진은 TLS 1.3과 TLS 1.2만 지원하며, TLS 1.1, TLS 1.0, SSL은 지원하지 않습니다. 세션 재개와 PSK가 없고, 0-RTT와 QUIC도 없습니다. 신뢰 루트는 TLSOptions.RootCertFile에서 가져오며, NativeTLS_Options.UseSystemRoots가 True이면 운영 체제가 신뢰하는 루트도 추가됩니다. 이는 Windows ROOT 저장소나 CA 번들 파일에서 읽어오며, macOS나 iOS 키체인 또는 Android 저장소에서는 절대 읽지 않습니다. 컴포넌트 이벤트 OnSSLVerifyPeer는 이 엔진에서 사용할 수 없습니다. 엔진이 자체 검증 훅을 가지고 있기 때문입니다. 이 가운데 어느 하나라도 필요하다면 OpenSSL이나 플랫폼 백엔드를 계속 사용하세요.
sgcCrypto의 일부이므로 Standard 에디션 이상과 단독 sgcCrypto 패키지에 함께 제공됩니다.