-#\r
-# $Id: https10.pm,v 1.1.1.1 2003/08/02 23:39:55 takezoe Exp $\r
-\r
-use strict;\r
-\r
-package LWP::Protocol::https10;\r
-\r
-# Figure out which SSL implementation to use\r
-use vars qw($SSL_CLASS);\r
-if ($IO::Socket::SSL::VERSION) {\r
- $SSL_CLASS = "IO::Socket::SSL"; # it was already loaded\r
-} else {\r
- eval { require Net::SSL; }; # from Crypt-SSLeay\r
- if ($@) {\r
- require IO::Socket::SSL;\r
- $SSL_CLASS = "IO::Socket::SSL";\r
- } else {\r
- $SSL_CLASS = "Net::SSL";\r
- }\r
-}\r
-\r
-\r
-use vars qw(@ISA);\r
-\r
-require LWP::Protocol::http10;\r
-@ISA=qw(LWP::Protocol::http10);\r
-\r
-sub _new_socket\r
-{\r
- my($self, $host, $port, $timeout) = @_;\r
- local($^W) = 0; # IO::Socket::INET can be noisy\r
- my $sock = $SSL_CLASS->new(PeerAddr => $host,\r
- PeerPort => $port,\r
- Proto => 'tcp',\r
- Timeout => $timeout,\r
- );\r
- unless ($sock) {\r
- # IO::Socket::INET leaves additional error messages in $@\r
- $@ =~ s/^.*?: //;\r
- die "Can't connect to $host:$port ($@)";\r
- }\r
- $sock;\r
-}\r
-\r
-sub _check_sock\r
-{\r
- my($self, $req, $sock) = @_;\r
- my $check = $req->header("If-SSL-Cert-Subject");\r
- if (defined $check) {\r
- my $cert = $sock->get_peer_certificate ||\r
- die "Missing SSL certificate";\r
- my $subject = $cert->subject_name;\r
- die "Bad SSL certificate subject: '$subject' !~ /$check/"\r
- unless $subject =~ /$check/;\r
- $req->remove_header("If-SSL-Cert-Subject"); # don't pass it on\r
- }\r
-}\r
-\r
-sub _get_sock_info\r
-{\r
- my $self = shift;\r
- $self->SUPER::_get_sock_info(@_);\r
- my($res, $sock) = @_;\r
- $res->header("Client-SSL-Cipher" => $sock->get_cipher);\r
- my $cert = $sock->get_peer_certificate;\r
- if ($cert) {\r
- $res->header("Client-SSL-Cert-Subject" => $cert->subject_name);\r
- $res->header("Client-SSL-Cert-Issuer" => $cert->issuer_name);\r
- }\r
- $res->header("Client-SSL-Warning" => "Peer certificate not verified");\r
-}\r
-\r
-1;\r
+#
+# $Id: https10.pm,v 1.1.1.1 2003/08/02 23:39:55 takezoe Exp $
+
+use strict;
+
+package LWP::Protocol::https10;
+
+# Figure out which SSL implementation to use
+use vars qw($SSL_CLASS);
+if ($IO::Socket::SSL::VERSION) {
+ $SSL_CLASS = "IO::Socket::SSL"; # it was already loaded
+} else {
+ eval { require Net::SSL; }; # from Crypt-SSLeay
+ if ($@) {
+ require IO::Socket::SSL;
+ $SSL_CLASS = "IO::Socket::SSL";
+ } else {
+ $SSL_CLASS = "Net::SSL";
+ }
+}
+
+
+use vars qw(@ISA);
+
+require LWP::Protocol::http10;
+@ISA=qw(LWP::Protocol::http10);
+
+sub _new_socket
+{
+ my($self, $host, $port, $timeout) = @_;
+ local($^W) = 0; # IO::Socket::INET can be noisy
+ my $sock = $SSL_CLASS->new(PeerAddr => $host,
+ PeerPort => $port,
+ Proto => 'tcp',
+ Timeout => $timeout,
+ );
+ unless ($sock) {
+ # IO::Socket::INET leaves additional error messages in $@
+ $@ =~ s/^.*?: //;
+ die "Can't connect to $host:$port ($@)";
+ }
+ $sock;
+}
+
+sub _check_sock
+{
+ my($self, $req, $sock) = @_;
+ my $check = $req->header("If-SSL-Cert-Subject");
+ if (defined $check) {
+ my $cert = $sock->get_peer_certificate ||
+ die "Missing SSL certificate";
+ my $subject = $cert->subject_name;
+ die "Bad SSL certificate subject: '$subject' !~ /$check/"
+ unless $subject =~ /$check/;
+ $req->remove_header("If-SSL-Cert-Subject"); # don't pass it on
+ }
+}
+
+sub _get_sock_info
+{
+ my $self = shift;
+ $self->SUPER::_get_sock_info(@_);
+ my($res, $sock) = @_;
+ $res->header("Client-SSL-Cipher" => $sock->get_cipher);
+ my $cert = $sock->get_peer_certificate;
+ if ($cert) {
+ $res->header("Client-SSL-Cert-Subject" => $cert->subject_name);
+ $res->header("Client-SSL-Cert-Issuer" => $cert->issuer_name);
+ }
+ $res->header("Client-SSL-Warning" => "Peer certificate not verified");
+}
+
+1;