This commit was generated by cvs2svn to track changes on a CVS vendor
[openssl.git] / perl / cipher.pl
1 #!/usr/local/bin/perl
2
3 use ExtUtils::testlib;
4
5 use SSLeay;
6
7 $md=SSLeay::MD::new("md5");
8
9 foreach (@SSLeay::Cipher::names)
10         {
11         ($c=SSLeay::Cipher::new($_)) ||
12                 die "'$_' is an unknown cipher algorithm\n";
13
14
15         $data="012345678abcdefghijklmnopqrstuvwxyz";
16         $c->init("01234567abcdefghABCDEFGH","zyxwvut",1);
17
18         $in =$c->update(substr($data, 0, 5));
19         $in.=$c->update(substr($data, 5,10));
20         $in.=$c->update(substr($data,15,1));
21         $in.=$c->update(substr($data,16));
22
23         $in.=$c->final();
24
25         $c->init("01234567abcdefghABCDEFGH","zyxwvut",0);
26         $out=$c->update($in);
27         $out.=$c->final();
28
29         ($out eq $data) || die "decrypt for $_ failed:$!\n";
30
31         $md->init();
32         $md->update($in);
33         $digest=$md->final();
34
35         print unpack("H*",$digest);
36         printf " %2d %2d %2d %s\n", $c->key_length(), $c->iv_length(),
37                 $c->block_size(), $c->name();
38         }
39