summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/des/testdes.pl
diff options
context:
space:
mode:
authorcvs2svn <admin@example.com>1998-10-05 20:13:17 +0000
committercvs2svn <admin@example.com>1998-10-05 20:13:17 +0000
commite82f18fab47b698d93971f576f962a3068132912 (patch)
tree681519717892864935c3d0533cf171098afa649a /src/lib/libcrypto/des/testdes.pl
parent536c76cbb863bab152f19842ab88772c01e922c7 (diff)
downloadopenbsd-SSLeay_0_9_0b.tar.gz
openbsd-SSLeay_0_9_0b.tar.bz2
openbsd-SSLeay_0_9_0b.zip
This commit was manufactured by cvs2git to create tag 'SSLeay_0_9_0b'.SSLeay_0_9_0b
Diffstat (limited to 'src/lib/libcrypto/des/testdes.pl')
-rw-r--r--src/lib/libcrypto/des/testdes.pl167
1 files changed, 167 insertions, 0 deletions
diff --git a/src/lib/libcrypto/des/testdes.pl b/src/lib/libcrypto/des/testdes.pl
new file mode 100644
index 0000000000..67fbd47f36
--- /dev/null
+++ b/src/lib/libcrypto/des/testdes.pl
@@ -0,0 +1,167 @@
1#!/usr/bin/perl
2
3# des.pl tesing code
4
5require 'des.pl';
6
7$num_tests=34;
8@key_data=(
9 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
10 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
11 0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
12 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
13 0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
14 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
15 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
16 0xFE,0xDC,0xBA,0x98,0x76,0x54,0x32,0x10,
17 0x7C,0xA1,0x10,0x45,0x4A,0x1A,0x6E,0x57,
18 0x01,0x31,0xD9,0x61,0x9D,0xC1,0x37,0x6E,
19 0x07,0xA1,0x13,0x3E,0x4A,0x0B,0x26,0x86,
20 0x38,0x49,0x67,0x4C,0x26,0x02,0x31,0x9E,
21 0x04,0xB9,0x15,0xBA,0x43,0xFE,0xB5,0xB6,
22 0x01,0x13,0xB9,0x70,0xFD,0x34,0xF2,0xCE,
23 0x01,0x70,0xF1,0x75,0x46,0x8F,0xB5,0xE6,
24 0x43,0x29,0x7F,0xAD,0x38,0xE3,0x73,0xFE,
25 0x07,0xA7,0x13,0x70,0x45,0xDA,0x2A,0x16,
26 0x04,0x68,0x91,0x04,0xC2,0xFD,0x3B,0x2F,
27 0x37,0xD0,0x6B,0xB5,0x16,0xCB,0x75,0x46,
28 0x1F,0x08,0x26,0x0D,0x1A,0xC2,0x46,0x5E,
29 0x58,0x40,0x23,0x64,0x1A,0xBA,0x61,0x76,
30 0x02,0x58,0x16,0x16,0x46,0x29,0xB0,0x07,
31 0x49,0x79,0x3E,0xBC,0x79,0xB3,0x25,0x8F,
32 0x4F,0xB0,0x5E,0x15,0x15,0xAB,0x73,0xA7,
33 0x49,0xE9,0x5D,0x6D,0x4C,0xA2,0x29,0xBF,
34 0x01,0x83,0x10,0xDC,0x40,0x9B,0x26,0xD6,
35 0x1C,0x58,0x7F,0x1C,0x13,0x92,0x4F,0xEF,
36 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
37 0x1F,0x1F,0x1F,0x1F,0x0E,0x0E,0x0E,0x0E,
38 0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1,0xFE,
39 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
40 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
41 0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
42 0xFE,0xDC,0xBA,0x98,0x76,0x54,0x32,0x10,
43 );
44
45@plain_data=(
46 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
47 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
48 0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
49 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
50 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
51 0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
52 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
53 0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
54 0x01,0xA1,0xD6,0xD0,0x39,0x77,0x67,0x42,
55 0x5C,0xD5,0x4C,0xA8,0x3D,0xEF,0x57,0xDA,
56 0x02,0x48,0xD4,0x38,0x06,0xF6,0x71,0x72,
57 0x51,0x45,0x4B,0x58,0x2D,0xDF,0x44,0x0A,
58 0x42,0xFD,0x44,0x30,0x59,0x57,0x7F,0xA2,
59 0x05,0x9B,0x5E,0x08,0x51,0xCF,0x14,0x3A,
60 0x07,0x56,0xD8,0xE0,0x77,0x47,0x61,0xD2,
61 0x76,0x25,0x14,0xB8,0x29,0xBF,0x48,0x6A,
62 0x3B,0xDD,0x11,0x90,0x49,0x37,0x28,0x02,
63 0x26,0x95,0x5F,0x68,0x35,0xAF,0x60,0x9A,
64 0x16,0x4D,0x5E,0x40,0x4F,0x27,0x52,0x32,
65 0x6B,0x05,0x6E,0x18,0x75,0x9F,0x5C,0xCA,
66 0x00,0x4B,0xD6,0xEF,0x09,0x17,0x60,0x62,
67 0x48,0x0D,0x39,0x00,0x6E,0xE7,0x62,0xF2,
68 0x43,0x75,0x40,0xC8,0x69,0x8F,0x3C,0xFA,
69 0x07,0x2D,0x43,0xA0,0x77,0x07,0x52,0x92,
70 0x02,0xFE,0x55,0x77,0x81,0x17,0xF1,0x2A,
71 0x1D,0x9D,0x5C,0x50,0x18,0xF7,0x28,0xC2,
72 0x30,0x55,0x32,0x28,0x6D,0x6F,0x29,0x5A,
73 0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
74 0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
75 0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
76 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
77 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
78 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
79 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);
80
81@cipher_data=(
82 0x8C,0xA6,0x4D,0xE9,0xC1,0xB1,0x23,0xA7,
83 0x73,0x59,0xB2,0x16,0x3E,0x4E,0xDC,0x58,
84 0x95,0x8E,0x6E,0x62,0x7A,0x05,0x55,0x7B,
85 0xF4,0x03,0x79,0xAB,0x9E,0x0E,0xC5,0x33,
86 0x17,0x66,0x8D,0xFC,0x72,0x92,0x53,0x2D,
87 0x8A,0x5A,0xE1,0xF8,0x1A,0xB8,0xF2,0xDD,
88 0x8C,0xA6,0x4D,0xE9,0xC1,0xB1,0x23,0xA7,
89 0xED,0x39,0xD9,0x50,0xFA,0x74,0xBC,0xC4,
90 0x69,0x0F,0x5B,0x0D,0x9A,0x26,0x93,0x9B,
91 0x7A,0x38,0x9D,0x10,0x35,0x4B,0xD2,0x71,
92 0x86,0x8E,0xBB,0x51,0xCA,0xB4,0x59,0x9A,
93 0x71,0x78,0x87,0x6E,0x01,0xF1,0x9B,0x2A,
94 0xAF,0x37,0xFB,0x42,0x1F,0x8C,0x40,0x95,
95 0x86,0xA5,0x60,0xF1,0x0E,0xC6,0xD8,0x5B,
96 0x0C,0xD3,0xDA,0x02,0x00,0x21,0xDC,0x09,
97 0xEA,0x67,0x6B,0x2C,0xB7,0xDB,0x2B,0x7A,
98 0xDF,0xD6,0x4A,0x81,0x5C,0xAF,0x1A,0x0F,
99 0x5C,0x51,0x3C,0x9C,0x48,0x86,0xC0,0x88,
100 0x0A,0x2A,0xEE,0xAE,0x3F,0xF4,0xAB,0x77,
101 0xEF,0x1B,0xF0,0x3E,0x5D,0xFA,0x57,0x5A,
102 0x88,0xBF,0x0D,0xB6,0xD7,0x0D,0xEE,0x56,
103 0xA1,0xF9,0x91,0x55,0x41,0x02,0x0B,0x56,
104 0x6F,0xBF,0x1C,0xAF,0xCF,0xFD,0x05,0x56,
105 0x2F,0x22,0xE4,0x9B,0xAB,0x7C,0xA1,0xAC,
106 0x5A,0x6B,0x61,0x2C,0xC2,0x6C,0xCE,0x4A,
107 0x5F,0x4C,0x03,0x8E,0xD1,0x2B,0x2E,0x41,
108 0x63,0xFA,0xC0,0xD0,0x34,0xD9,0xF7,0x93,
109 0x61,0x7B,0x3A,0x0C,0xE8,0xF0,0x71,0x00,
110 0xDB,0x95,0x86,0x05,0xF8,0xC8,0xC6,0x06,
111 0xED,0xBF,0xD1,0xC6,0x6C,0x29,0xCC,0xC7,
112 0x35,0x55,0x50,0xB2,0x15,0x0E,0x24,0x51,
113 0xCA,0xAA,0xAF,0x4D,0xEA,0xF1,0xDB,0xAE,
114 0xD5,0xD4,0x4F,0xF7,0x20,0x68,0x3D,0x0D,
115 0x2A,0x2B,0xB0,0x08,0xDF,0x97,0xC2,0xF2);
116
117print "Doing ecb tests\n";
118for ($i=0; $i<$num_tests; $i++)
119 {
120 printf "Doing test $i\n";
121 $key =pack("C8",splice(@key_data ,0,8));
122 $data=pack("C8",splice(@plain_data ,0,8));
123 $res =pack("C8",splice(@cipher_data,0,8));
124
125 @ks= &des_set_key($key);
126 $out1= &des_ecb_encrypt(*ks,1,$data);
127 $out2= &des_ecb_encrypt(*ks,0,$out1);
128 $out3= &des_ecb_encrypt(*ks,0,$res);
129 &eprint("encryption failure",$res,$out1)
130 if ($out1 ne $res);
131 &eprint("encryption/decryption failure",$data,$out2)
132 if ($out2 ne $data);
133 &eprint("decryption failure",$data,$out3)
134 if ($data ne $out3);
135 }
136print "Done\n";
137
138print "doing speed test over 30 seconds\n";
139$SIG{'ALRM'}='done';
140sub done {$done=1;}
141$done=0;
142
143$count=0;
144$d=pack("C8",0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef);
145@ks= &des_set_key($d);
146alarm(30);
147$start=(times)[0];
148while (!$done)
149 {
150 $count++;
151 $d=&des_ecb_encrypt(*ks,1,$d);
152 }
153$end=(times)[0];
154$t=$end-$start;
155printf "$count DESs in %.2f seconds is %.2f DESs/sec or %.2f bytes/sec\n",
156 1.0*$t,1.0*$count/$t,$count*8.0/$t;
157
158sub eprint
159 {
160 local($s,$c,$e)=@_;
161 local(@k);
162
163 @k=unpack("C8",$c);
164 printf "%02x%02x%02x%02x %02x%02x%02x%02x - ",unpack("C8",$c);
165 printf "%02x%02x%02x%02x %02x%02x%02x%02x :",unpack("C8",$e);
166 print " $s\n";
167 }