in reply to LWP::UserAgent Client certificate authentication
I'm sorry, but I don't understand why everyone is shouting SSCCE immediately. Also hippo's example doesn't show anything you already knew: That when you try to use SSLv3 the program fails. I think your question 1 is a perfectly sound question. If I read a bit between your lines, not knowing what versions are involved I think I can understand what you are talking about. The question is that according to the documentation IO::Socket::SSL supports SSLv3? This is mentioned in the latest documentation so let's start from there.
What could have been answered here is that the documentation for IO::Socket::SSL is actually correct. The library does support SSLv3! However, here is the trick: IO::Socket::SSL depends on Net::SSLeay and that module relies on OpenSSL. The only thing the documentation of Net::SSLeay (v1.85) mentions is: "On some systems, OpenSSL may be compiled without support for SSLv2. If this is the case, Net::SSLeay will warn if ssl_version has been set to 2". But as far as I know, OpenSSL is no longer default compiled with support for SSLv3 either for Perl (and for very good reasons!). And so it seems that here there is some missing information in the documents regards disabling SSLv3 but maybe it has been mentioned in release notes. If you examine SSLeay.xs (inside the download package) you will see that in some point of time OpenSSL compiler options have been added to make it possible to disable SSLv3:
#ifndef OPENSSL_NO_SSL3 SSL_CTX * SSL_CTX_v3_new() CODE: RETVAL = SSL_CTX_new (SSLv3_method()); OUTPUT: RETVAL #endif
In the following codeblock from IO::Socket::SSL you can see that the result is "SSL Version SSLv3 not supported" because Net::SSLeay cannot CTX_v3_new. I tried to find information about this method check in IO::Socket::SSL's documentation but could not find it:
my $ctx_new_sub = UNIVERSAL::can( 'Net::SSLeay', $ver eq 'SSLv2' ? 'CTX_v2_new' : $ver eq 'SSLv3' ? 'CTX_v3_new' : $ver eq 'TLSv1' ? 'CTX_tlsv1_new' : $ver eq 'TLSv1_1' ? 'CTX_tlsv1_1_new' : $ver eq 'TLSv1_2' ? 'CTX_tlsv1_2_new' : 'CTX_new' ) or return IO::Socket::SSL->_internal_error("SSL Version $ver not + supported",9);
I can not help you regards question 2 since I don't know much about that.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: LWP::UserAgent Client certificate authentication
by hippo (Archbishop) on Jun 28, 2018 at 13:35 UTC | |
by Veltro (Hermit) on Jun 28, 2018 at 14:15 UTC | |
by hippo (Archbishop) on Jun 28, 2018 at 14:40 UTC |