3des를 이용한 암호화/복호화 코드를 만드는데 뭐가 문제인지 잘 모르겠어요

윤용근의 이미지

openssl에 있는

DES_ede2_cbc_encrypt() 라는 함수를 이용해서 암호화/복호화 하려는데 잘 안되네요

지금 쓰는건 제가 테스트를 위해 만들었던 소스 입니다.

.........
DES_cblock a,c,e="\0";
DES_key_schedule b,d;

char cli[155] = "abcdefeghijdkelslkjalksjldkfnm,xlkjfoeidlzlsd";

............
char input[25];
char output[25];

memset(input,0,sizeof(input));
memset(output,0,sizeof(output));

strcpy(input,"mkdze33dav");

...........

DES_string_to_2keys(cli,&a,&c);
DES_set_odd_parity(&a);
DES_set_odd_parity(&c);
printf("DES_set_key_checked &a %d\n",DES_set_key_checked(&a,&b));
printf("DES_set_key_checked &a %d\n",DES_set_key_checked(&c,&d));

padding_message(input); //메시지 크기를 8의 배수로 맞추어주기 위한 함수입니다.
DES_ede2_cbc_encrypt(input, output, strlen(input), &b, &d, &e, DES_ENCRYPT);

memset(input,0,sizeof(input));
DES_ede2_cbc_encrypt(output, input, strlen(output), &b, &d, &e, DES_DECRYPT);

...............

이렇게 복호화까지 해줬는데

아예 엉뚱한 값이 나오네요... 제가 key에 대해서 무지한건가요?

key를 string을 통해 생성하고, 그것의 odd parity를 설정해주고

키 스케쥴에다가 적용했는데... 도와주세요.. 어디가 잘못된지 모르겠어요..