65 #ifdef OPENSSL_NO_IDEA
66 int main(
int argc,
char *argv[])
68 printf(
"No IDEA support\n");
75 0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x04,
76 0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08};
78 unsigned char in[8]={0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03};
79 unsigned char c[8]={0x11,0xFB,0xED,0x2B,0x01,0x98,0x6D,0xE5};
80 unsigned char out[80];
82 char *
text=
"Hello to all people out there";
84 static unsigned char cfb_key[16]={
85 0xe1,0xf0,0xc3,0xd2,0xa5,0xb4,0x87,0x96,
86 0x69,0x78,0x4b,0x5a,0x2d,0x3c,0x0f,0x1e,
88 static unsigned char cfb_iv[80]={0x34,0x12,0x78,0x56,0xab,0x90,0xef,0xcd};
89 static unsigned char cfb_buf1[40],cfb_buf2[40],cfb_tmp[8];
90 #define CFB_TEST_SIZE 24
93 0x4e,0x6f,0x77,0x20,0x69,0x73,
94 0x20,0x74,0x68,0x65,0x20,0x74,
95 0x69,0x6d,0x65,0x20,0x66,0x6f,
96 0x72,0x20,0x61,0x6c,0x6c,0x20
99 0x59,0xD8,0xE2,0x65,0x00,0x58,0x6C,0x3F,
100 0x2C,0x17,0x25,0xD0,0x1A,0x38,0xB7,0x2A,
101 0x39,0x61,0x37,0xDC,0x79,0xFB,0x9F,0x45
108 static int cfb64_test(
unsigned char *cfb_cipher);
109 static char *
pt(
unsigned char *
p);
110 int main(
int argc,
char *argv[])
118 if (memcmp(out,c,8) != 0)
120 printf(
"ecb idea error encrypting\n");
123 printf(
"%02X ",out[i]);
127 printf(
"%02X ",c[i]);
134 if (memcmp(out,in,8) != 0)
136 printf(
"ecb idea error decrypting\n");
139 printf(
"%02X ",out[i]);
143 printf(
"%02X ",in[i]);
148 if (err == 0) printf(
"ecb idea ok\n");
155 if (memcmp(text,out,strlen(text)+1) != 0)
157 printf(
"cbc idea bad\n");
161 printf(
"cbc idea ok\n");
163 printf(
"cfb64 idea ");
164 if (cfb64_test(cfb_cipher64))
172 #ifdef OPENSSL_SYS_NETWARE
173 if (err) printf(
"ERROR: %d\n", err);
179 static int cfb64_test(
unsigned char *cfb_cipher)
186 memcpy(cfb_tmp,cfb_iv,8);
196 printf(
"idea_cfb64_encrypt encrypt error\n");
198 printf(
"%s\n",
pt(&(cfb_buf1[i])));
200 memcpy(cfb_tmp,cfb_iv,8);
205 (
long)CFB_TEST_SIZE-17,&dks,
207 if (memcmp(plain,cfb_buf2,CFB_TEST_SIZE) != 0)
210 printf(
"idea_cfb_encrypt decrypt error\n");
211 for (i=0; i<24; i+=8)
212 printf(
"%s\n",
pt(&(cfb_buf2[i])));
217 static char *
pt(
unsigned char *
p)
219 static char bufs[10][20];
223 static char *
f=
"0123456789ABCDEF";
225 ret= &(bufs[bnum++][0]);
229 ret[i*2]=f[(p[i]>>4)&0xf];
230 ret[i*2+1]=f[p[i]&0xf];