ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Crypt-Twofish2/t/00_load.t
Revision: 1.1
Committed: Sat Sep 6 22:10:55 2003 UTC (20 years, 8 months ago) by root
Content type: application/x-troff
Branch: MAIN
CVS Tags: rel-1_02, rel-1_03, HEAD
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 BEGIN { $| = 1; print "1..83\n"; }
2     END {print "not ok 1\n" unless $loaded;}
3     use Crypt::Twofish2;
4     $loaded = 1;
5     print "ok 1\n";
6    
7     $i = 2;
8    
9     $plaintext = ("p" x 30)."xi";
10     $key = "po".("k" x 30);
11    
12     $cbc = new Crypt::Twofish2 $key, Crypt::Twofish2::MODE_CBC;
13     $crypted = $cbc->encrypt($plaintext);
14     print unpack("H*", $crypted) eq "57a627f0aca655dc495e15e30354a6334825f10ba9d2d20441b84ffc504d2942" ? "" : "not ", "ok ".$i++."\n";
15     $crypted2 = $cbc->encrypt($plaintext);
16     print unpack("H*", $crypted2) eq "440996719ae702988b631db5820ad94e76603972835342bbbc99311654a4d6ba" ? "" : "not ", "ok ".$i++."\n";
17    
18     $cbc = new Crypt::Twofish2 $key, Crypt::Twofish2::MODE_CBC;
19     print $cbc->decrypt($crypted) eq $plaintext ? "" : "not ", "ok ".$i++."\n";
20     print $cbc->decrypt($crypted2) eq $plaintext ? "" : "not ", "ok ".$i++."\n";
21    
22     # now try the test vectors provided
23    
24     while (<DATA>) {
25     if (/KEY=(\S+)\s+PT=(\S+)\s+CT=(\S+)\s+/) {
26     my $key = pack "H*", $1;
27     my $pt = pack "H*", $2;
28     my $ct = pack "H*", $3;
29    
30     my $ecb = new Crypt::Twofish2 $key;
31    
32     my $crypted = $ecb->encrypt($pt);
33     print $crypted eq $ct ? "" : "not ", "ok ".$i++."\n";
34     print $ecb->decrypt($crypted) eq $pt ? "" : "not ", "ok ".$i++."\n";
35     }
36     }
37    
38     __DATA__
39    
40     KEY=00000000000000000000000000000000 PT=00000000000000000000000000000000 CT=9F589F5CF6122C32B6BFEC2F2AE8C35A
41     KEY=0123456789ABCDEFFEDCBA98765432100011223344556677 PT=00000000000000000000000000000000 CT=CFD1D2E5A9BE9CDF501F13B892BD2248
42     KEY=0123456789ABCDEFFEDCBA987654321000112233445566778899AABBCCDDEEFF PT=00000000000000000000000000000000 CT=37527BE0052334B89F0CFCCAE87CFA20
43     KEY=00000000000000000000000000000000 PT=00000000000000000000000000000000 CT=9F589F5CF6122C32B6BFEC2F2AE8C35A
44     KEY=00000000000000000000000000000000 PT=9F589F5CF6122C32B6BFEC2F2AE8C35A CT=D491DB16E7B1C39E86CB086B789F5419
45     KEY=9F589F5CF6122C32B6BFEC2F2AE8C35A PT=D491DB16E7B1C39E86CB086B789F5419 CT=019F9809DE1711858FAAC3A3BA20FBC3
46     KEY=D491DB16E7B1C39E86CB086B789F5419 PT=019F9809DE1711858FAAC3A3BA20FBC3 CT=6363977DE839486297E661C6C9D668EB
47     KEY=019F9809DE1711858FAAC3A3BA20FBC3 PT=6363977DE839486297E661C6C9D668EB CT=816D5BD0FAE35342BF2A7412C246F752
48     KEY=6363977DE839486297E661C6C9D668EB PT=816D5BD0FAE35342BF2A7412C246F752 CT=5449ECA008FF5921155F598AF4CED4D0
49     KEY=816D5BD0FAE35342BF2A7412C246F752 PT=5449ECA008FF5921155F598AF4CED4D0 CT=6600522E97AEB3094ED5F92AFCBCDD10
50     KEY=5449ECA008FF5921155F598AF4CED4D0 PT=6600522E97AEB3094ED5F92AFCBCDD10 CT=34C8A5FB2D3D08A170D120AC6D26DBFA
51     KEY=6600522E97AEB3094ED5F92AFCBCDD10 PT=34C8A5FB2D3D08A170D120AC6D26DBFA CT=28530B358C1B42EF277DE6D4407FC591
52     KEY=34C8A5FB2D3D08A170D120AC6D26DBFA PT=28530B358C1B42EF277DE6D4407FC591 CT=8A8AB983310ED78C8C0ECDE030B8DCA4
53     KEY=137A24CA47CD12BE818DF4D2F4355960 PT=BCA724A54533C6987E14AA827952F921 CT=6B459286F3FFD28D49F15B1581B08E42
54     KEY=BCA724A54533C6987E14AA827952F921 PT=6B459286F3FFD28D49F15B1581B08E42 CT=5D9D4EEFFA9151575524F115815A12E0
55     KEY=000000000000000000000000000000000000000000000000 PT=00000000000000000000000000000000 CT=EFA71F788965BD4453F860178FC19101
56     KEY=000000000000000000000000000000000000000000000000 PT=EFA71F788965BD4453F860178FC19101 CT=88B2B2706B105E36B446BB6D731A1E88
57     KEY=EFA71F788965BD4453F860178FC191010000000000000000 PT=88B2B2706B105E36B446BB6D731A1E88 CT=39DA69D6BA4997D585B6DC073CA341B2
58     KEY=88B2B2706B105E36B446BB6D731A1E88EFA71F788965BD44 PT=39DA69D6BA4997D585B6DC073CA341B2 CT=182B02D81497EA45F9DAACDC29193A65
59     KEY=39DA69D6BA4997D585B6DC073CA341B288B2B2706B105E36 PT=182B02D81497EA45F9DAACDC29193A65 CT=7AFF7A70CA2FF28AC31DD8AE5DAAAB63
60     KEY=182B02D81497EA45F9DAACDC29193A6539DA69D6BA4997D5 PT=7AFF7A70CA2FF28AC31DD8AE5DAAAB63 CT=D1079B789F666649B6BD7D1629F1F77E
61     KEY=7AFF7A70CA2FF28AC31DD8AE5DAAAB63182B02D81497EA45 PT=D1079B789F666649B6BD7D1629F1F77E CT=3AF6F7CE5BD35EF18BEC6FA787AB506B
62     KEY=D1079B789F666649B6BD7D1629F1F77E7AFF7A70CA2FF28A PT=3AF6F7CE5BD35EF18BEC6FA787AB506B CT=AE8109BFDA85C1F2C5038B34ED691BFF
63     KEY=3AF6F7CE5BD35EF18BEC6FA787AB506BD1079B789F666649 PT=AE8109BFDA85C1F2C5038B34ED691BFF CT=893FD67B98C550073571BD631263FC78
64     KEY=AE8109BFDA85C1F2C5038B34ED691BFF3AF6F7CE5BD35EF1 PT=893FD67B98C550073571BD631263FC78 CT=16434FC9C8841A63D58700B5578E8F67
65     KEY=DEA4F3DA75EC7A8EAC3861A9912402CD5DBE44032769DF54 PT=FB66522C332FCC4C042ABE32FA9E902F CT=F0AB73301125FA21EF70BE5385FB76B6
66     KEY=FB66522C332FCC4C042ABE32FA9E902FDEA4F3DA75EC7A8E PT=F0AB73301125FA21EF70BE5385FB76B6 CT=E75449212BEEF9F4A390BD860A640941
67     KEY=0000000000000000000000000000000000000000000000000000000000000000 PT=00000000000000000000000000000000 CT=57FF739D4DC92C1BD7FC01700CC8216F
68     KEY=0000000000000000000000000000000000000000000000000000000000000000 PT=57FF739D4DC92C1BD7FC01700CC8216F CT=D43BB7556EA32E46F2A282B7D45B4E0D
69     KEY=57FF739D4DC92C1BD7FC01700CC8216F00000000000000000000000000000000 PT=D43BB7556EA32E46F2A282B7D45B4E0D CT=90AFE91BB288544F2C32DC239B2635E6
70     KEY=D43BB7556EA32E46F2A282B7D45B4E0D57FF739D4DC92C1BD7FC01700CC8216F PT=90AFE91BB288544F2C32DC239B2635E6 CT=6CB4561C40BF0A9705931CB6D408E7FA
71     KEY=90AFE91BB288544F2C32DC239B2635E6D43BB7556EA32E46F2A282B7D45B4E0D PT=6CB4561C40BF0A9705931CB6D408E7FA CT=3059D6D61753B958D92F4781C8640E58
72     KEY=6CB4561C40BF0A9705931CB6D408E7FA90AFE91BB288544F2C32DC239B2635E6 PT=3059D6D61753B958D92F4781C8640E58 CT=E69465770505D7F80EF68CA38AB3A3D6
73     KEY=3059D6D61753B958D92F4781C8640E586CB4561C40BF0A9705931CB6D408E7FA PT=E69465770505D7F80EF68CA38AB3A3D6 CT=5AB67A5F8539A4A5FD9F0373BA463466
74     KEY=E69465770505D7F80EF68CA38AB3A3D63059D6D61753B958D92F4781C8640E58 PT=5AB67A5F8539A4A5FD9F0373BA463466 CT=DC096BCD99FC72F79936D4C748E75AF7
75     KEY=5AB67A5F8539A4A5FD9F0373BA463466E69465770505D7F80EF68CA38AB3A3D6 PT=DC096BCD99FC72F79936D4C748E75AF7 CT=C5A3E7CEE0F1B7260528A68FB4EA05F2
76     KEY=DC096BCD99FC72F79936D4C748E75AF75AB67A5F8539A4A5FD9F0373BA463466 PT=C5A3E7CEE0F1B7260528A68FB4EA05F2 CT=43D5CEC327B24AB90AD34A79D0469151
77     KEY=2E2158BC3E5FC714C1EEECA0EA696D48D2DED73E59319A8138E0331F0EA149EA PT=248A7F3528B168ACFDD1386E3F51E30C CT=431058F4DBC7F734DA4F02F04CC4F459
78     KEY=248A7F3528B168ACFDD1386E3F51E30C2E2158BC3E5FC714C1EEECA0EA696D48 PT=431058F4DBC7F734DA4F02F04CC4F459 CT=37FE26FF1CF66175F5DDF4C33B97A205
79