3DES ECB MODE IN OPENSSL Can't get expected Result
Hi All,
I am using the OPENSSL to encrypt the plain text, but the output is wrong, can anyone give me hints or solution, many thanks!!
Code:
unsigned char out[8];
char back[bufsize],workvec[bufsize];
const char *temp="0592789FFFEDCBA9
";
des_cblock key1,key3,seed = {0x13,0x13,0x23,0x23,0x23,0x23,0x13,0x13};
des_cblock key2 = {0x67,0x89,0x67,0x89,0x67,0x89,0x67,0x89};
des_key_schedule ks1,ks2,ks3;
char master1c[8];
char c1[16];
int length = strlen(temp);
int i;
char buf = 0;
int z=0;
for(i = 0; i < length; i++){
if(i % 2 != 0){
//change hex to ascii
sprintf(master1c+z, "%c", hex_to_ascii(buf, c1[i]));
z++;
}else{
buf = c1[i];
}
}
char *in =master1c;
DES_set_key((C_Block *)_k1,&ks1);
DES_set_key((C_Block *)_k2,&ks2);
DES_set_key((C_Block *)_k3,&ks3);
DES_ecb3_encrypt((C_Block *)in,out,&ks1,&ks2,&ks3, DES_ENCRYPT);
for (i=0; i<8; i++)
{
printf("0x%02X, ", out[i]);
}
My Wrong Result=0xAD, 0x62, 0xDC, 0x19, 0xBB, 0xFE, 0x61, 0x52
Expected Result=0x90, 0xDE, 0xBD, 0x82, 0x7C, 0xEE, 0x4F, 0xDD