Import of old SSLeay release: SSLeay 0.9.0b
[openssl.git] / perl / ssl.pl
diff --git a/perl/ssl.pl b/perl/ssl.pl
new file mode 100644 (file)
index 0000000..4a5569f
--- /dev/null
@@ -0,0 +1,71 @@
+#!/usr/local/bin/perl
+
+use ExtUtils::testlib;
+
+use SSLeay;
+
+$ssl_ctx=SSL::CTX->new("SSLv3");
+
+$ssl_ctx->set_options("-info_callback" =>
+       sub     {
+               print STDERR $_[0]->state()."\n";
+               }
+       );
+
+$conn="localhost:4433";
+$conn=$ARGV[0] if $#ARGV >= 0;
+$bio=BIO->new("connect");
+$bio->hostname($conn) || die $ssl->error();
+
+#$bbio=BIO->new("buffer");
+#$bbio->push($cbio);
+#$bio=$bbio;
+
+#$bio->set_callback(
+#      sub     {
+#              my($bio,$state,$cmd,$buf,$lart,$ret)=@_;
+#              print STDERR "$state:$cmd\n";
+#              return($ret);
+#              }
+#      );
+
+print STDERR "-1 ABCD\n";
+$ssl=$ssl_ctx->new_ssl;
+print STDERR "000 ABCD\n";
+$ssl->set_bio($bio);
+
+print STDERR "00 ABCD\n";
+(($ret=$ssl->connect()) > 0) || die $ssl->error();
+
+print STDERR "0 ABCD\n";
+
+(($ret=$ssl->syswrite("GET / HTTP/1.0\r\n\r\n")) > 0) || die $ssl->error();
+
+print STDERR "1 ABCD\n";
+$data="";
+while (1)
+       {
+print STDERR "2 ABCD\n";
+       $ret=$ssl->sysread($buf,1024);
+print STDERR "3 ABCD\n";
+       last if $ret <= 0;
+       $data.=$buf;
+       }
+
+print STDERR "4 ABCD\n";
+@a=split(/[\r]\n/,$data);
+($server)=grep(/^Server:/,@a);
+
+print "$server\n";
+$x509=$ssl->get_peer_certificate();
+print "subject:".$x509->get_subject_name()."\n";
+print "issuer:". $x509->get_issuer_name()."\n";
+
+$c=$ssl->get_current_cipher;
+($i,$a)=$c->get_bits;
+$v=$c->get_version;
+$n=$c->get_name;
+
+print "protocol=".$ssl->get_version."\n";
+print "bits=$i($a) cipher type=$v cipher=$n\n";
+