Hi ,
I am new to this openssl libraries.
I am facing a issue in the below code.
When I encrypt, it is giving all zeroes as output. And when I decrypt I am
not getting the exact message.
Please, I need help in this.
#define BUFSIZE 1024
int main(int argc, char *argv[])
{
int i;
unsigned char out[BUFSIZE]={0};
unsigned char in[]={0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00};
for(i=0;i<8;i++)
printf("%2X\n",in[i]);
cryptWrapper(in, out);
printf("Encrypted/Decrypted string is: [%s]\n", out);
return 0;
}
int cryptWrapper(unsigned char *in, unsigned char *out)
{
unsigned char EncrOut[BUFSIZE]={0};
unsigned char DecrOut[BUFSIZE]={0};
int ret;
unsigned char tdesKey1[8]
={0xEF,0x38,0xE0,0xE0,0x58,0xA7,0x08,0x8C};
unsigned char tdesKey2[8]
={0x51,0x01,0x37,0xFE,0xBC,0xE0,0x4C,0x85};
unsigned char initVector[8]
={0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31}; // The
initializationvector
int i;
des_key_schedule kSched1, kSched2;
des_cblock iv;
memcpy(iv,initVector,sizeof(initVector)); // set the
initialization vector
ret=DES_set_key_checked(&tdesKey1, &kSched1);
printf("ret %d\n",ret); // set the key schedule
DES_set_key_checked(&tdesKey2, &kSched2); // set the
key schedule
// DES_set_key_checked(&tdesKey3, &kSched3); // set the
key schedule
for(i=0;i<8;i++)
printf("%2X\n",in[i]);
memset(out, 0, BUFSIZE);
des_ede2_cbc_encrypt(in, EncrOut, (long)strlen((char*)in),
kSched1,kSched2, &iv, DES_ENCRYPT); // Encrypt
for(i=0;i<8;i++)
printf("Encrypted %X\n",EncrOut[i]);
memcpy(iv,initVector,sizeof(initVector));
DES_set_key_checked(&tdesKey1, &kSched1);
DES_set_key_checked(&tdesKey2, &kSched2);
// DES_set_key_checked(&tdesKey3, &kSched3);
des_ede2_cbc_encrypt((unsigned char*)EncrOut,
DecrOut,(long)strlen((char*)EncrOut), kSched1, kSched2, &iv,DES_DECRYPT);
for(i=0;i<8;i++)
printf("Decrypted %X\n",DecrOut[i]);
strcpy((char *) out, (char *) DecrOut);
return 0;
}
Regards,
ChandraSekhar.