-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Please check this repo whether this is a known feature request
Done, nothing remotely similar found.
Describe your feature request (if it's a technical feature)
It's quite straightforward to add a new protocol to the "non-native" code path. However, there are a few places where the native openssl starttls protocol handling is used unconditionally, in determine_optimal_proto(), run_fs() and ciphers_by_strength().
But it's annoying redundant effort to extend openssl's starttls support in the context of testssl.sh. Additionally one needs to ship such extended binaries to the users.
This issue popped up when I've looked into ciphersuite scanning for the RDP protocol. Something which turned out to be quite little effort to add in testssl.sh except for some errors from the code paths which insist using openssl.
Describe the solution you'd like
The fundamental idea is using the same approach (socat + openssl s_client with unix domain socket) as used in a single place already, run_starttls_injection(). There fd_socket is used to handle the dialog, and after that socat hooks things up to openssl s_client without using starttls). Perfectly modular code: starttls dialog using sockets, and openssl is used purely for "vanilla SSL/TLS".
What worries me somewhat is that the change is implicitly replicated to at least 3 places, because I can't see a straightforward solution which can wrap such openssl usage variants in vastly differing use cases.
I'm happy to discuss alternatives and once the direction is clear it should be possible to provide a patch to start towards integration.
Which version are you referring to
3.3dev