2 * Copyright 1988 by the Massachusetts Institute of Technology.
4 * For copying and distribution information, please see the file
7 * exit status: 0 ==> success
12 static char rcsid_key_test_c[] =
15 #include <mit-cpyright.h>
20 #define MIN_ARGC 0 /* min # args, not incl flags */
21 #define MAX_ARGC 99 /* max # args, not incl flags */
23 extern char *errmsg();
24 extern int des_key_sched();
33 unsigned long dummy[2];
34 unsigned char dum_c[8] = { 0x80,1,1,1,1,1,1,1 };
42 /* Local Declarations */
45 progname=argv[0]; /* salt away invoking program */
47 /* Assume a long is four bytes */
48 if (sizeof(long) != 4) {
49 fprintf(stderr,"\nERROR, size of long is %d",sizeof(long));
53 while (--argc > 0 && (*++argv)[0] == '-')
54 for (i=1; argv[0][i] != '\0'; i++) {
67 /* test ANSI msb only key */
73 printf("%s: illegal flag \"%c\" ",
79 if (argc < MIN_ARGC || argc >MAX_ARGC) {
80 printf("Usage: xxx [-xxx] xxx xxx\n");
84 /* argv[0] now points to first non-option arg, if any */
89 fprintf(stderr,"\nChecking a key 0x 80 01 01 01 01 01 01 01 ");
90 fprintf(stderr,"\nKey = ");
91 des_key_sched(dum_c,KS);
92 des_cblock_print (dum_c);
97 printf("\nCHecking a weak key...");
98 dummy[0] = 0x01fe01fe;
99 dummy[1] = 0x01fe01fe;
100 des_key_sched(dummy,KS);
102 fprintf(stderr,"\nKey[0] = %x Key[1] = %x",dummy[0],dummy[1]);
105 fprintf(stderr,"\nKey[0] = %X Key[1] = %X",dummy[0],dummy[1]);
108 dummy[0] = 0x01010101;
109 dummy[1] = 0x01010101;
111 fprintf(stderr,"\nKey[0] = %x Key[1] = %x",dummy[0],dummy[1]);
114 fprintf(stderr,"\nKey[0] = %X Key[1] = %X",dummy[0],dummy[1]);
116 des_key_sched(dummy,KS);
118 fprintf(stderr,"\nKS= %x",* (long *)KS);
121 fprintf(stderr,"\nKS= %X",* (long *)KS);
123 dummy[0] = 0x01010101;
124 dummy[1] = 0x01010101;
126 fprintf(stderr,"\nKey[0] = %x Key[1] = %x",dummy[0],dummy[1]);
129 fprintf(stderr,"\nKey[0] = %X Key[1] = %X",dummy[0],dummy[1]);
131 des_key_sched(dummy,KS);
133 fprintf(stderr,"\nKS= %x", *(long *)KS);
136 fprintf(stderr,"\nKS= %X", *(long *)KS);
139 dummy[0] = 0x80808080;
140 dummy[1] = 0x80808080;
142 fprintf(stderr,"\nKey[0] = %x Key[1] = %x",dummy[0],dummy[1]);
145 fprintf(stderr,"\nKey[0] = %X Key[1] = %X",dummy[0],dummy[1]);
147 des_key_sched(dummy,KS);
149 fprintf(stderr,"\nKS[0]= %x",* (long * ) KS);
152 fprintf(stderr,"\nKS[0]= %X",* (long * ) KS);
155 printf("\nstring to key 'a'");
156 des_string_to_key("a",dummy);
158 fprintf(stderr,"\nKey[0] = %x Key[1] = %x",dummy[0],dummy[1]);
161 fprintf(stderr,"\nKey[0] = %X Key[1] = %X",dummy[0],dummy[1]);
163 des_key_sched(dummy,KS);
165 fprintf(stderr,"\nKS= %x",* (long *) KS);
168 fprintf(stderr,"\nKS= %X",* (long *) KS);
171 printf("\nstring to key 'c'");
172 des_string_to_key("c",dummy);
174 fprintf(stderr,"\nKey[0] = %x Key[1] = %x",dummy[0],dummy[1]);
177 fprintf(stderr,"\nKey[0] = %X Key[1] = %X",dummy[0],dummy[1]);
179 des_key_sched(dummy,KS);
181 fprintf(stderr,"\nKS= %x", * (long * ) KS);
184 fprintf(stderr,"\nKS= %X", * (long * ) KS);
188 printf("\nstring to key 'e'");
189 des_string_to_key("e",dummy);
191 fprintf(stderr,"\nKey[0] = %x Key[1] = %x",dummy[0],dummy[1]);
194 fprintf(stderr,"\nKey[0] = %X Key[1] = %X",dummy[0],dummy[1]);
196 des_key_sched(dummy,KS);
198 fprintf(stderr,"\nKS= %x",KS[0]);
201 fprintf(stderr,"\nKS= %X",KS[0]);
204 printf("\ndes_string_to_key '%s'",argv[0]);
205 des_string_to_key(argv[0],dummy);
207 des_string_to_key(argv[0],dummy);
210 des_key_sched(dummy,KS);
214 for (i =0; i<1000; i++) {
215 des_string_to_key(argv[0],kk);
216 des_key_sched(kk,KS);