SmartGit: “protocol https not supported or disabled in libcurl…” error

One of our Windows users recently ran into a strange error when trying to clone a GitHub repository, telling him “protocol https not
supported or disabled in libcurl…”. As it has turned out, he is using PureData which seems to cause troubles in combination with Git, according to this stackoverflow posting.

Switching from his custom Git to SmartGit’s bundled Git has solved the problem for him.

SVN: SSL handshake_failure

Usually, an SSL handshake_failure is caused by providing a bad client certificate.
If this is not the case, you may add following line to smartgit.properties:


javax.net.debug=ssl

and launch SmartGit from the console (on Windows, use smartgithgc.exe).
The resulting debug output may give hints on possible other reasons. Sometimes it may still be meaningless as it was the case for a support request we have received today.
The relevant part immediately before the error just showed up:


QThreadPoolThread-12 (smartgit.SZ), READ: SSLv3 Alert, length = 2
QThreadPoolThread-12 (smartgit.SZ), RECV TLSv1 ALERT: warning, handshake_failure
SSL - handshake alert: handshake_failure
QThreadPoolThread-12 (smartgit.SZ), handling exception: javax.net.ssl.SSLProtocolException: handshake alert: handshake_failure
QThreadPoolThread-12 (smartgit.SZ), SEND TLSv1 ALERT: fatal, description = unexpected_message

As it turned out, the SSLv2Hello protocol needs to be enabled by adding following line to smartgit.properties:


svnkit.http.sslProtocols=SSLv2Hello,SSLv3

After restarting SmartGit, the problem should be gone.