summaryrefslogtreecommitdiffstats
path: root/perl/s.pl
diff options
context:
space:
mode:
Diffstat (limited to 'perl/s.pl')
-rw-r--r--perl/s.pl72
1 files changed, 72 insertions, 0 deletions
diff --git a/perl/s.pl b/perl/s.pl
new file mode 100644
index 0000000000..4f8f417e17
--- /dev/null
+++ b/perl/s.pl
@@ -0,0 +1,72 @@
+#!/usr/local/bin/perl
+
+use ExtUtils::testlib;
+
+use SSLeay;
+
+$ssl_ctx=SSL::CTX->new("SSLv3_client");
+
+$ssl_ctx->set_options("-info_callback" =>
+ sub {
+ print STDERR $_[0]->state()."\n";
+ }
+ );
+
+$conn="localhost:4433";
+$conn=$ARGV[0] if $#ARGV >= 0;
+$cbio=BIO->new("connect");
+$cbio->hostname($conn) || die $ssl->error();
+
+$bbio=BIO->new("buffer");
+
+$sbio=BIO->new("ssl");
+$ssl=$ssl_ctx->new_ssl;
+$ssl->set_options(-connect_state);
+$sbio->set_ssl($ssl);
+
+$sbio->push($cbio);
+$bbio->push($sbio);
+$bio=$bbio;
+
+#$bio->set_callback(
+# sub {
+# my($bio,$state,$cmd,$buf,$lart,$ret)=@_;
+# print STDERR "$state:$cmd\n";
+# return($ret);
+# }
+# );
+
+$b=$bio;
+do {
+ print STDERR $b->type."\n";
+ } while ($b=$b->next_bio);
+
+(($ret=$bio->syswrite("GET / HTTP/1.0\r\n\r\n")) > 0) || die $bio->error();
+$bio->flush;
+
+$data="";
+while (1)
+ {
+ $ret=$bio->getline;
+ $ret =~ s/[\r\n]//g;
+ print STDERR "$ret\n";
+ last if $ret eq "";
+ $server=$1 if $ret=~ /^Server: (.*)/;
+ }
+
+
+print "server is $server\n";
+$x509=$ssl->get_peer_certificate();
+print "version :".$x509->get_version()."\n";
+print "serialNumber:".$x509->get_serialNumber()->bn2hex."\n";
+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";
+