Eu me perguntava sobre a mesma coisa, olhei para o código-fonte ( "Use a fonte, Luke!" :), e é simplesmente o valor de retorno de < href="http://www.openssl.org/docs/ssl/SSL_connect.html"> SSL_connect() da biblioteca OpenSSL . A documentação afirma que:
-
Accepted(1) significa:The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been established.
-
Rejected(0) significa:The TLS/SSL handshake was not successful but was shut down controlled and by the specifications of the TLS/SSL protocol. Call
SSL_get_error()with the return value ret to find out the reason. -
Failed(<0) significa:The TLS/SSL handshake was not successful, because a fatal error occurred either at the protocol level or a connection failure occurred. The shutdown was not clean. It can also occur [if] action is need to continue the operation for non-blocking BIOs. Call
SSL_get_error()with the return value ret to find out the reason.
Os dois últimos podem ser seguidos por um N/A , se link não estiver disponível.
Então, acho que sslscan deve conter uma opção --verbose ou -v que chama SSL_get_error() e gera o motivo real em que ele falhou (ou foi rejeitado).
Isso seria bastante útil. Porque agora, não é.
Por enquanto, tudo o que posso recomendar é conectar-se manualmente a um cliente mais real, forçar o uso de uma certa cifra no dito cliente ou no servidor, e depois mostrar o motivo real.
A menos que você queira melhorar o código de sslscan , é claro. :)