rewrite home page redirect
[dh-make-perl] / dev / arm / libio-socket-ssl-perl / libio-socket-ssl-perl-1.16 / .pc / disable_timebomb_tests.patch / t / auto_verify_hostname.t
1 #!perl -w
2
3 use strict;
4 use Net::SSLeay;
5 use Socket;
6 use IO::Socket::SSL;
7
8 if ( grep { $^O =~m{$_} } qw( MacOS VOS vmesa riscos amigaos ) ) {
9         print "1..0 # Skipped: fork not implemented on this platform\n";
10         exit
11 }
12
13 # subjectAltNames are not supported or buggy in older versions,
14 # so certificates cannot be checked
15 if ( $Net::SSLeay::VERSION < 1.33 ) {
16         print "1..0 # Skipped because of \$Net::SSLeay::VERSION= $Net::SSLeay::VERSION <1.33\n";
17         exit;
18 }
19
20 use vars qw( $SSL_SERVER_ADDR );
21 do "t/ssl_settings.req" || do "ssl_settings.req";
22
23 $|=1;
24 print "1..30\n";
25
26 my $server = IO::Socket::SSL->new(
27         LocalAddr => $SSL_SERVER_ADDR,
28         Listen => 2,
29         ReuseAddr => 1,
30         SSL_server => 1,
31         SSL_ca_file => "certs/test-ca.pem",
32         SSL_cert_file => "certs/server-wildcard.pem",
33         SSL_key_file => "certs/server-wildcard.pem",
34 );
35 warn "\$!=$!, \$\@=$@, S\$SSL_ERROR=$SSL_ERROR" if ! $server;
36 print "not ok\n", exit if !$server;
37 ok("Server Initialization");
38 my $SSL_SERVER_PORT = $server->sockport;
39
40 defined( my $pid = fork() ) || die $!;
41 if ( $pid == 0 ) {
42         while (1) {
43                 my $csock = $server->accept || next;
44                 print $csock "hallo\n";
45         }
46 }
47
48 close($server);
49 my @tests = qw(
50         example.com      www FAIL
51         server.local     ldap OK
52         server.local     www FAIL
53         bla.server.local www OK
54         www7.other.local www OK
55         www7.other.local ldap FAIL
56         bla.server.local ldap OK
57 );
58
59 for( my $i=0;$i<@tests;$i+=3 ) {
60         my ($name,$scheme,$result) = @tests[$i,$i+1,$i+2];
61         my $cl = IO::Socket::SSL->new(
62                 SSL_ca_file => 'certs/test-ca.pem',
63                 PeerAddr => "$SSL_SERVER_ADDR:$SSL_SERVER_PORT",
64                 SSL_verify_mode => 1,
65                 SSL_verifycn_scheme => $scheme,
66                 SSL_verifycn_name => $name,
67         );
68         if ( $result eq 'FAIL' ) {
69                 print "not " if $cl;
70                 ok( "connection to $name/$scheme failed" );
71         } else {
72                 print "not " if !$cl;
73                 ok( "connection to $name/$scheme succeeded" );
74         }
75         $cl || next;
76         print "not " if <$cl> ne "hallo\n";
77         ok( "received hallo" );
78 }
79
80 for( my $i=0;$i<@tests;$i+=3 ) {
81         my ($name,$scheme,$result) = @tests[$i,$i+1,$i+2];
82         my $cl = IO::Socket::INET->new(
83                 PeerAddr => "$SSL_SERVER_ADDR:$SSL_SERVER_PORT",
84         ) || print "not ";
85         ok( "tcp connect" );
86         $cl = IO::Socket::SSL->start_SSL( $cl,
87                 SSL_ca_file => 'certs/test-ca.pem',
88                 SSL_verify_mode => 1,
89                 SSL_verifycn_scheme => $scheme,
90                 SSL_verifycn_name => $name,
91         );
92         if ( $result eq 'FAIL' ) {
93                 print "not " if $cl;
94                 ok( "ssl upgrade of connection to $name/$scheme failed" );
95         } else {
96                 print "not " if !$cl;
97                 ok( "ssl upgrade of connection to $name/$scheme succeeded" );
98         }
99         $cl || next;
100         print "not " if <$cl> ne "hallo\n";
101         ok( "received hallo" );
102 }
103
104 kill(9,$pid);
105 wait;
106
107 sub ok { print "ok #$_[0]\n"; }
108