diff options
Diffstat (limited to 'perl/sslbio.pl')
-rw-r--r-- | perl/sslbio.pl | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/perl/sslbio.pl b/perl/sslbio.pl new file mode 100644 index 0000000000..fd80ad8584 --- /dev/null +++ b/perl/sslbio.pl @@ -0,0 +1,40 @@ +#!/usr/local/bin/perl + +use ExtUtils::testlib; + +use SSLeay; + +$ssl_ctx=SSL::CTX->new("SSLv3"); + +#$ssl_ctx->set_options("-info_callback" => +# sub { +# print STDOUT $_[0]->state()."\n"; +# } +# ); + +# create a ssl bio +$bssl=BIO->new("ssl"); +$bssl->set_ssl($ssl_ctx->new_ssl()) || die $bssl->error(); +$bssl->get_ssl->set_options("-connect_state") || die $ssl->error(); + +$bssl->set_callback(sub { printf "XXXXXXXXXXXXXXXXXXXXXX %d %s\n",$_[1],$_[0]->type; }); + +# create connect bio +$host="localhost:4433"; +$host=$ARGV[0] if $#ARGV >= 0; +$bio=BIO->new("connect"); +$bio->hostname($host) || die $bio->error(); + +# push it in +$bssl->push($bio); + +(($ret=$bssl->write("GET / HTTP/1.0\r\n\r\n")) > 0) || die $bssl->error(); + +while (1) + { + $ret=$bssl->read($buf,10240); + last if ($ret <= 0); + print $buf; + } + + |