]>
Commit | Line | Data |
---|---|---|
58964a49 RE |
1 | #!/usr/local/bin/perl |
2 | ||
3 | use ExtUtils::testlib; | |
4 | ||
5 | use SSLeay; | |
6 | ||
7 | $ssl_ctx=SSL::CTX->new("SSLv3_client"); | |
8 | ||
9 | $ssl_ctx->set_options("-info_callback" => | |
10 | sub { | |
11 | print STDERR $_[0]->state()."\n"; | |
12 | } | |
13 | ); | |
14 | ||
15 | $conn="localhost:4433"; | |
16 | $conn=$ARGV[0] if $#ARGV >= 0; | |
17 | $cbio=BIO->new("connect"); | |
18 | $cbio->hostname($conn) || die $ssl->error(); | |
19 | ||
20 | $bbio=BIO->new("buffer"); | |
21 | ||
22 | $sbio=BIO->new("ssl"); | |
23 | $ssl=$ssl_ctx->new_ssl; | |
24 | $ssl->set_options(-connect_state); | |
25 | $sbio->set_ssl($ssl); | |
26 | ||
27 | $sbio->push($cbio); | |
28 | $bbio->push($sbio); | |
29 | $bio=$bbio; | |
30 | ||
31 | #$bio->set_callback( | |
32 | # sub { | |
33 | # my($bio,$state,$cmd,$buf,$lart,$ret)=@_; | |
34 | # print STDERR "$state:$cmd\n"; | |
35 | # return($ret); | |
36 | # } | |
37 | # ); | |
38 | ||
39 | $b=$bio; | |
40 | do { | |
41 | print STDERR $b->type."\n"; | |
42 | } while ($b=$b->next_bio); | |
43 | ||
44 | (($ret=$bio->syswrite("GET / HTTP/1.0\r\n\r\n")) > 0) || die $bio->error(); | |
45 | $bio->flush; | |
46 | ||
47 | $data=""; | |
48 | while (1) | |
49 | { | |
50 | $ret=$bio->getline; | |
51 | $ret =~ s/[\r\n]//g; | |
52 | print STDERR "$ret\n"; | |
53 | last if $ret eq ""; | |
54 | $server=$1 if $ret=~ /^Server: (.*)/; | |
55 | } | |
56 | ||
57 | ||
58 | print "server is $server\n"; | |
59 | $x509=$ssl->get_peer_certificate(); | |
60 | print "version :".$x509->get_version()."\n"; | |
61 | print "serialNumber:".$x509->get_serialNumber()->bn2hex."\n"; | |
62 | print "subject :".$x509->get_subject_name()."\n"; | |
63 | print "issuer :". $x509->get_issuer_name()."\n"; | |
64 | ||
65 | $c=$ssl->get_current_cipher; | |
66 | ($i,$a)=$c->get_bits; | |
67 | $v=$c->get_version; | |
68 | $n=$c->get_name; | |
69 | ||
70 | print "protocol=".$ssl->get_version."\n"; | |
71 | print "bits=$i($a) cipher type=$v cipher=$n\n"; | |
72 |