Looking at the code it has: static LSEC_SSL_METHOD* str2method(const char *method) { if (!strcmp(method, "sslv23")) return SSLv23_method(); if (!strcmp(method, "sslv3")) return SSLv3_method(); if (!strcmp(method, "tlsv1")) return TLSv1_method(); #if (OPENSSL_VERSION_NUMBER >= 0x1000100fL) if (!strcmp(method, "tlsv1_1")) return TLSv1_1_method(); if (!strcmp(method, "tlsv1_2")) return TLSv1_2_method(); #endif return NULL; }
And almost all the samples seems to be doing: ./samples/info/client.lua: protocol = "sslv3", ./samples/info/client.lua: options = {"all", "no_sslv2"}, A few use tlsv1 which isn't much better. This is all completly wrong. The only method supporting multiple versions in SSLv23_*. All the other are version specific and the no_sslv2 / SSL_OP_NO_SSLv2 doesn't have any effect on them. I suggest you always use SSLv23_method(). Maybe you should get rid of the protocol thing, or just don't let it have any effect. Kurt