Ich verwende TIdSSLIOHandlerSocketOpenSSL, um eine TLS / SSL-Verbindung zu öffnen. Ich möchte derzeit tls 1.0 bis 1.2 unterstützen.
Ich initialisiere den IOHandler so.
%Vor%Wie kann ich nach dem Herstellen der Verbindung herausfinden, welches Protokoll für die Verbindung ausgehandelt wurde? (Sowohl um sicherzustellen, dass die Konfiguration des Clients und des Testservers korrekt ist, als auch zu statistischen Zwecken.)
Ich habe SSLContext.Method
nach der Verbindung überprüft, aber nach der Verbindung wird sslvSSLv23
angezeigt. SSLContext.SSLVersions
zeigt [sslvTLSv1_2,sslvTLSv1_1, sslvTLSv1]
.
Wie bekomme ich diese Informationen?
Das spezifisch ausgehandelte Protokoll befindet sich nach dem Einrichten der SSL / TLS-Sitzung in der Eigenschaft TIdSSLIOHandlerSocketOpenSSL.SSLSocket.Cipher.Version
. OpenSSL hat auch eine Funktion SSL_get_version()
(die Indy nicht verwendet, aber Sie können direkt aufrufen).