Loading crypto/des/des_old.c +1 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,7 @@ * */ #define OPENSSL_DES_LIBDES_COMPATIBILITY #include <openssl/des_old.h> #include <openssl/des.h> #include <openssl/rand.h> Loading crypto/des/des_old.h +30 −13 Original line number Diff line number Diff line Loading @@ -3,13 +3,29 @@ /* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING * * The function names in here are deprecated and are only present to * provide an interface compatible with libdes. OpenSSL now provides * functions where "des_" has been replaced with "DES_" in the names, * to make it possible to make incompatible changes that are needed * for C type security and other stuff. * provide an interface compatible with openssl 0.9.6 and older as * well as libdes. OpenSSL now provides functions where "des_" has * been replaced with "DES_" in the names, to make it possible to * make incompatible changes that are needed for C type security and * other stuff. * * This include files has two compatibility modes: * * - If OPENSSL_DES_LIBDES_COMPATIBILITY is defined, you get an API * that is compatible with libdes and SSLeay. * - If OPENSSL_DES_LIBDES_COMPATIBILITY isn't defined, you get an * API that is compatible with OpenSSL 0.9.5x to 0.9.6x. * * Note that these modes break earlier snapshots of OpenSSL, where * libdes compatibility was the only available mode or (later on) the * prefered compatibility mode. However, after much consideration * (and more or less violent discussions with external parties), it * was concluded that OpenSSL should be compatible with earlier versions * of itself before anything else. Also, in all honesty, libdes is * an old beast that shouldn't really be used any more. * * Please consider starting to use the DES_ functions rather than the * des_ ones. The des_ functions will dissapear completely before * des_ ones. The des_ functions will disappear completely before * OpenSSL 1.0! * * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING Loading @@ -19,7 +35,7 @@ * project 2001. */ /* ==================================================================== * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Loading Loading @@ -107,15 +123,16 @@ typedef struct _ossl_old_des_ks_struct } ks; } _ossl_old_des_key_schedule[16]; #ifdef OPENSSL_DES_PRE_0_9_7_COMPATIBILITY #ifndef OPENSSL_DES_LIBDES_COMPATIBILITY #define des_cblock DES_cblock #define const_des_cblock const_DES_cblock #define des_key_schedule DES_key_schedule #define des_ecb3_encrypt(i,o,k1,k2,k3,e)\ DES_ecb3_encrypt((i),(o),(k1),(k2),(k3),(e)) #define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e)) #define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e)) DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n),(e)) #define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n)) #define des_options()\ Loading @@ -128,8 +145,8 @@ typedef struct _ossl_old_des_ks_struct DES_ncbc_encrypt((i),(o),(l),(k),(iv),(e)) #define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ DES_xcbc_encrypt((i),(o),(l),(k),(iv),(inw),(outw),(e)) #define des_cfb_encrypt(i,o,l,k,iv,e)\ DES_cfb_encrypt((i),(o),(l),(k),(iv),(e)) #define des_cfb_encrypt(i,o,n,l,k,iv,e)\ DES_cfb_encrypt((i),(o),(n),(l),(k),(iv),(e)) #define des_ecb_encrypt(i,o,k,e)\ DES_ecb_encrypt((i),(o),(k),(e)) #define des_encrypt(d,k,e)\ Loading Loading @@ -206,7 +223,7 @@ typedef struct _ossl_old_des_ks_struct #define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ _ossl_old_des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e)) #define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ _ossl_old_des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e)) _ossl_old_des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n),(e)) #define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ _ossl_old_des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n)) #define des_options()\ Loading @@ -219,8 +236,8 @@ typedef struct _ossl_old_des_ks_struct _ossl_old_des_ncbc_encrypt((i),(o),(l),(k),(iv),(e)) #define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ _ossl_old_des_xcbc_encrypt((i),(o),(l),(k),(iv),(inw),(outw),(e)) #define des_cfb_encrypt(i,o,l,k,iv,e)\ _ossl_old_des_cfb_encrypt((i),(o),(l),(k),(iv),(e)) #define des_cfb_encrypt(i,o,n,l,k,iv,e)\ _ossl_old_des_cfb_encrypt((i),(o),(n),(l),(k),(iv),(e)) #define des_ecb_encrypt(i,o,k,e)\ _ossl_old_des_ecb_encrypt((i),(o),(k),(e)) #define des_encrypt(d,k,e)\ Loading crypto/des/destest.c +48 −51 Original line number Diff line number Diff line Loading @@ -83,11 +83,8 @@ int main(int argc, char *argv[]) } #else #include <openssl/des.h> #include <openssl/des_old.h> #if defined(PERL5) || defined(__FreeBSD__) #define crypt(c,s) (DES_crypt((c),(s))) #endif #define crypt(c,s) (des_crypt((c),(s))) /* tisk tisk - the test keys don't all have odd parity :-( */ /* test data */ Loading Loading @@ -333,8 +330,8 @@ static int ede_cfb64_test(unsigned char *cfb_cipher); int main(int argc, char *argv[]) { int i,j,err=0; DES_cblock in,out,outin,iv3,iv2; DES_key_schedule ks,ks2,ks3; des_cblock in,out,outin,iv3,iv2; des_key_schedule ks,ks2,ks3; unsigned char cbc_in[40]; unsigned char cbc_out[40]; DES_LONG cs; Loading Loading @@ -381,7 +378,7 @@ int main(int argc, char *argv[]) /* if (memcmp(cbc_out,cbc3_ok, (unsigned int)(strlen((char *)cbc_data)+1+7)/8*8) != 0) { printf("DES_ede3_cbc_encrypt encrypt error\n"); printf("des_ede3_cbc_encrypt encrypt error\n"); err=1; } */ Loading @@ -392,7 +389,7 @@ int main(int argc, char *argv[]) { int n; printf("DES_ede3_cbcm_encrypt decrypt error\n"); printf("des_ede3_cbcm_encrypt decrypt error\n"); for(n=0 ; n < i ; ++n) printf(" %02x",cbc_data[n]); printf("\n"); Loading @@ -410,8 +407,8 @@ int main(int argc, char *argv[]) memcpy(in,plain_data[i],8); memset(out,0,8); memset(outin,0,8); DES_ecb_encrypt(&in,&out,&ks,DES_ENCRYPT); DES_ecb_encrypt(&out,&outin,&ks,DES_DECRYPT); des_ecb_encrypt(&in,&out,&ks,DES_ENCRYPT); des_ecb_encrypt(&out,&outin,&ks,DES_DECRYPT); if (memcmp(out,cipher_data[i],8) != 0) { Loading @@ -438,8 +435,8 @@ int main(int argc, char *argv[]) memcpy(in,plain_data[i],8); memset(out,0,8); memset(outin,0,8); DES_ecb2_encrypt(&in,&out,&ks,&ks2,DES_ENCRYPT); DES_ecb2_encrypt(&out,&outin,&ks,&ks2,DES_DECRYPT); des_ecb2_encrypt(&in,&out,&ks,&ks2,DES_ENCRYPT); des_ecb2_encrypt(&out,&outin,&ks,&ks2,DES_DECRYPT); if (memcmp(out,cipher_ecb2[i],8) != 0) { Loading @@ -466,7 +463,7 @@ int main(int argc, char *argv[]) memset(cbc_out,0,40); memset(cbc_in,0,40); memcpy(iv3,cbc_iv,sizeof(cbc_iv)); DES_ncbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,&ks, des_ncbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,&ks, &iv3,DES_ENCRYPT); if (memcmp(cbc_out,cbc_ok,32) != 0) { Loading @@ -475,7 +472,7 @@ int main(int argc, char *argv[]) } memcpy(iv3,cbc_iv,sizeof(cbc_iv)); DES_ncbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,&ks, des_ncbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,&ks, &iv3,DES_DECRYPT); if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)) != 0) { Loading @@ -493,19 +490,19 @@ int main(int argc, char *argv[]) memset(cbc_out,0,40); memset(cbc_in,0,40); memcpy(iv3,cbc_iv,sizeof(cbc_iv)); DES_xcbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,&ks, des_xcbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,&ks, &iv3,&cbc2_key,&cbc3_key, DES_ENCRYPT); if (memcmp(cbc_out,xcbc_ok,32) != 0) { printf("DES_xcbc_encrypt encrypt error\n"); printf("des_xcbc_encrypt encrypt error\n"); err=1; } memcpy(iv3,cbc_iv,sizeof(cbc_iv)); DES_xcbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,&ks, des_xcbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,&ks, &iv3,&cbc2_key,&cbc3_key, DES_DECRYPT); if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)+1) != 0) { printf("DES_xcbc_encrypt decrypt error\n"); printf("des_xcbc_encrypt decrypt error\n"); err=1; } #endif Loading @@ -532,16 +529,16 @@ int main(int argc, char *argv[]) /* i=((i+7)/8)*8; */ memcpy(iv3,cbc_iv,sizeof(cbc_iv)); DES_ede3_cbc_encrypt(cbc_data,cbc_out,16L,&ks,&ks2,&ks3,&iv3, des_ede3_cbc_encrypt(cbc_data,cbc_out,16L,&ks,&ks2,&ks3,&iv3, DES_ENCRYPT); DES_ede3_cbc_encrypt(&(cbc_data[16]),&(cbc_out[16]),i-16,&ks,&ks2,&ks3, des_ede3_cbc_encrypt(&(cbc_data[16]),&(cbc_out[16]),i-16,&ks,&ks2,&ks3, &iv3,DES_ENCRYPT); if (memcmp(cbc_out,cbc3_ok, (unsigned int)(strlen((char *)cbc_data)+1+7)/8*8) != 0) { int n; printf("DES_ede3_cbc_encrypt encrypt error\n"); printf("des_ede3_cbc_encrypt encrypt error\n"); for(n=0 ; n < i ; ++n) printf(" %02x",cbc_out[n]); printf("\n"); Loading @@ -552,12 +549,12 @@ int main(int argc, char *argv[]) } memcpy(iv3,cbc_iv,sizeof(cbc_iv)); DES_ede3_cbc_encrypt(cbc_out,cbc_in,i,&ks,&ks2,&ks3,&iv3,DES_DECRYPT); des_ede3_cbc_encrypt(cbc_out,cbc_in,i,&ks,&ks2,&ks3,&iv3,DES_DECRYPT); if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)+1) != 0) { int n; printf("DES_ede3_cbc_encrypt decrypt error\n"); printf("des_ede3_cbc_encrypt decrypt error\n"); for(n=0 ; n < i ; ++n) printf(" %02x",cbc_data[n]); printf("\n"); Loading @@ -576,14 +573,14 @@ int main(int argc, char *argv[]) } memset(cbc_out,0,40); memset(cbc_in,0,40); DES_pcbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,&ks, des_pcbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,&ks, &cbc_iv,DES_ENCRYPT); if (memcmp(cbc_out,pcbc_ok,32) != 0) { printf("pcbc_encrypt encrypt error\n"); err=1; } DES_pcbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,&ks,&cbc_iv, des_pcbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,&ks,&cbc_iv, DES_DECRYPT); if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)+1) != 0) { Loading @@ -608,7 +605,7 @@ int main(int argc, char *argv[]) memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); for (i=0; i<sizeof(plain); i++) DES_cfb_encrypt(&(plain[i]),&(cfb_buf1[i]), des_cfb_encrypt(&(plain[i]),&(cfb_buf1[i]), 8,1,&ks,&cfb_tmp,DES_ENCRYPT); if (memcmp(cfb_cipher8,cfb_buf1,sizeof(plain)) != 0) { Loading @@ -618,7 +615,7 @@ int main(int argc, char *argv[]) memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); for (i=0; i<sizeof(plain); i++) DES_cfb_encrypt(&(cfb_buf1[i]),&(cfb_buf2[i]), des_cfb_encrypt(&(cfb_buf1[i]),&(cfb_buf2[i]), 8,1,&ks,&cfb_tmp,DES_DECRYPT); if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0) { Loading @@ -634,7 +631,7 @@ int main(int argc, char *argv[]) printf("Doing ofb\n"); DES_set_key_checked(&ofb_key,&ks); memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv)); DES_ofb_encrypt(plain,ofb_buf1,64,sizeof(plain)/8,&ks,&ofb_tmp); des_ofb_encrypt(plain,ofb_buf1,64,sizeof(plain)/8,&ks,&ofb_tmp); if (memcmp(ofb_cipher,ofb_buf1,sizeof(ofb_buf1)) != 0) { printf("ofb_encrypt encrypt error\n"); Loading @@ -647,7 +644,7 @@ ofb_buf1[8+4], ofb_cipher[8+5], ofb_cipher[8+6], ofb_cipher[8+7]); err=1; } memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv)); DES_ofb_encrypt(ofb_buf1,ofb_buf2,64,sizeof(ofb_buf1)/8,&ks,&ofb_tmp); des_ofb_encrypt(ofb_buf1,ofb_buf2,64,sizeof(ofb_buf1)/8,&ks,&ofb_tmp); if (memcmp(plain,ofb_buf2,sizeof(ofb_buf2)) != 0) { printf("ofb_encrypt decrypt error\n"); Loading @@ -668,7 +665,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); num=0; for (i=0; i<sizeof(plain); i++) { DES_ofb64_encrypt(&(plain[i]),&(ofb_buf1[i]),1,&ks,&ofb_tmp, des_ofb64_encrypt(&(plain[i]),&(ofb_buf1[i]),1,&ks,&ofb_tmp, &num); } if (memcmp(ofb_cipher,ofb_buf1,sizeof(ofb_buf1)) != 0) Loading @@ -678,7 +675,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); } memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv)); num=0; DES_ofb64_encrypt(ofb_buf1,ofb_buf2,sizeof(ofb_buf1),&ks,&ofb_tmp, des_ofb64_encrypt(ofb_buf1,ofb_buf2,sizeof(ofb_buf1),&ks,&ofb_tmp, &num); if (memcmp(plain,ofb_buf2,sizeof(ofb_buf2)) != 0) { Loading @@ -694,7 +691,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); num=0; for (i=0; i<sizeof(plain); i++) { DES_ede3_ofb64_encrypt(&(plain[i]),&(ofb_buf1[i]),1,&ks,&ks, des_ede3_ofb64_encrypt(&(plain[i]),&(ofb_buf1[i]),1,&ks,&ks, &ks,&ofb_tmp,&num); } if (memcmp(ofb_cipher,ofb_buf1,sizeof(ofb_buf1)) != 0) Loading @@ -704,7 +701,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); } memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv)); num=0; DES_ede3_ofb64_encrypt(ofb_buf1,ofb_buf2,sizeof(ofb_buf1),&ks,&ks,&ks, des_ede3_ofb64_encrypt(ofb_buf1,ofb_buf2,sizeof(ofb_buf1),&ks,&ks,&ks, &ofb_tmp,&num); if (memcmp(plain,ofb_buf2,sizeof(ofb_buf2)) != 0) { Loading @@ -714,7 +711,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); printf("Doing cbc_cksum\n"); DES_set_key_checked(&cbc_key,&ks); cs=DES_cbc_cksum(cbc_data,&cret,strlen((char *)cbc_data),&ks,&cbc_iv); cs=des_cbc_cksum(cbc_data,&cret,strlen((char *)cbc_data),&ks,&cbc_iv); if (cs != cbc_cksum_ret) { printf("bad return value (%08lX), should be %08lX\n", Loading @@ -728,8 +725,8 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); } printf("Doing quad_cksum\n"); cs=DES_quad_cksum(cbc_data,(DES_cblock *)lqret, (long)strlen((char *)cbc_data),2,(DES_cblock *)cbc_iv); cs=des_quad_cksum(cbc_data,(des_cblock *)lqret, (long)strlen((char *)cbc_data),2,(des_cblock *)cbc_iv); if (cs != 0x70d7a63aL) { printf("quad_cksum error, ret %08lx should be 70d7a63a\n", Loading Loading @@ -793,7 +790,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); for (i=0; i<4; i++) { printf(" %d",i); DES_ncbc_encrypt(&(cbc_out[i]),cbc_in, des_ncbc_encrypt(&(cbc_out[i]),cbc_in, strlen((char *)cbc_data)+1,&ks, &cbc_iv,DES_ENCRYPT); } Loading @@ -801,7 +798,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); for (i=0; i<4; i++) { printf(" %d",i); DES_ncbc_encrypt(cbc_out,&(cbc_in[i]), des_ncbc_encrypt(cbc_out,&(cbc_in[i]), strlen((char *)cbc_data)+1,&ks, &cbc_iv,DES_ENCRYPT); } Loading Loading @@ -846,12 +843,12 @@ static char *pt(unsigned char *p) static int cfb_test(int bits, unsigned char *cfb_cipher) { DES_key_schedule ks; des_key_schedule ks; int i,err=0; DES_set_key_checked(&cfb_key,&ks); memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); DES_cfb_encrypt(plain,cfb_buf1,bits,sizeof(plain),&ks,&cfb_tmp, des_cfb_encrypt(plain,cfb_buf1,bits,sizeof(plain),&ks,&cfb_tmp, DES_ENCRYPT); if (memcmp(cfb_cipher,cfb_buf1,sizeof(plain)) != 0) { Loading @@ -861,7 +858,7 @@ static int cfb_test(int bits, unsigned char *cfb_cipher) printf("%s\n",pt(&(cfb_buf1[i]))); } memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); DES_cfb_encrypt(cfb_buf1,cfb_buf2,bits,sizeof(plain),&ks,&cfb_tmp, des_cfb_encrypt(cfb_buf1,cfb_buf2,bits,sizeof(plain),&ks,&cfb_tmp, DES_DECRYPT); if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0) { Loading @@ -875,14 +872,14 @@ static int cfb_test(int bits, unsigned char *cfb_cipher) static int cfb64_test(unsigned char *cfb_cipher) { DES_key_schedule ks; des_key_schedule ks; int err=0,i,n; DES_set_key_checked(&cfb_key,&ks); memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); n=0; DES_cfb64_encrypt(plain,cfb_buf1,12,&ks,&cfb_tmp,&n,DES_ENCRYPT); DES_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]),sizeof(plain)-12,&ks, des_cfb64_encrypt(plain,cfb_buf1,12,&ks,&cfb_tmp,&n,DES_ENCRYPT); des_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]),sizeof(plain)-12,&ks, &cfb_tmp,&n,DES_ENCRYPT); if (memcmp(cfb_cipher,cfb_buf1,sizeof(plain)) != 0) { Loading @@ -893,8 +890,8 @@ static int cfb64_test(unsigned char *cfb_cipher) } memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); n=0; DES_cfb64_encrypt(cfb_buf1,cfb_buf2,17,&ks,&cfb_tmp,&n,DES_DECRYPT); DES_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]), des_cfb64_encrypt(cfb_buf1,cfb_buf2,17,&ks,&cfb_tmp,&n,DES_DECRYPT); des_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]), sizeof(plain)-17,&ks,&cfb_tmp,&n,DES_DECRYPT); if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0) { Loading @@ -908,15 +905,15 @@ static int cfb64_test(unsigned char *cfb_cipher) static int ede_cfb64_test(unsigned char *cfb_cipher) { DES_key_schedule ks; des_key_schedule ks; int err=0,i,n; DES_set_key_checked(&cfb_key,&ks); memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); n=0; DES_ede3_cfb64_encrypt(plain,cfb_buf1,12,&ks,&ks,&ks,&cfb_tmp,&n, des_ede3_cfb64_encrypt(plain,cfb_buf1,12,&ks,&ks,&ks,&cfb_tmp,&n, DES_ENCRYPT); DES_ede3_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]), des_ede3_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]), sizeof(plain)-12,&ks,&ks,&ks, &cfb_tmp,&n,DES_ENCRYPT); if (memcmp(cfb_cipher,cfb_buf1,sizeof(plain)) != 0) Loading @@ -928,9 +925,9 @@ static int ede_cfb64_test(unsigned char *cfb_cipher) } memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); n=0; DES_ede3_cfb64_encrypt(cfb_buf1,cfb_buf2,(long)17,&ks,&ks,&ks, des_ede3_cfb64_encrypt(cfb_buf1,cfb_buf2,(long)17,&ks,&ks,&ks, &cfb_tmp,&n,DES_DECRYPT); DES_ede3_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]), des_ede3_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]), sizeof(plain)-17,&ks,&ks,&ks, &cfb_tmp,&n,DES_DECRYPT); if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0) Loading Loading
crypto/des/des_old.c +1 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,7 @@ * */ #define OPENSSL_DES_LIBDES_COMPATIBILITY #include <openssl/des_old.h> #include <openssl/des.h> #include <openssl/rand.h> Loading
crypto/des/des_old.h +30 −13 Original line number Diff line number Diff line Loading @@ -3,13 +3,29 @@ /* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING * * The function names in here are deprecated and are only present to * provide an interface compatible with libdes. OpenSSL now provides * functions where "des_" has been replaced with "DES_" in the names, * to make it possible to make incompatible changes that are needed * for C type security and other stuff. * provide an interface compatible with openssl 0.9.6 and older as * well as libdes. OpenSSL now provides functions where "des_" has * been replaced with "DES_" in the names, to make it possible to * make incompatible changes that are needed for C type security and * other stuff. * * This include files has two compatibility modes: * * - If OPENSSL_DES_LIBDES_COMPATIBILITY is defined, you get an API * that is compatible with libdes and SSLeay. * - If OPENSSL_DES_LIBDES_COMPATIBILITY isn't defined, you get an * API that is compatible with OpenSSL 0.9.5x to 0.9.6x. * * Note that these modes break earlier snapshots of OpenSSL, where * libdes compatibility was the only available mode or (later on) the * prefered compatibility mode. However, after much consideration * (and more or less violent discussions with external parties), it * was concluded that OpenSSL should be compatible with earlier versions * of itself before anything else. Also, in all honesty, libdes is * an old beast that shouldn't really be used any more. * * Please consider starting to use the DES_ functions rather than the * des_ ones. The des_ functions will dissapear completely before * des_ ones. The des_ functions will disappear completely before * OpenSSL 1.0! * * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING Loading @@ -19,7 +35,7 @@ * project 2001. */ /* ==================================================================== * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Loading Loading @@ -107,15 +123,16 @@ typedef struct _ossl_old_des_ks_struct } ks; } _ossl_old_des_key_schedule[16]; #ifdef OPENSSL_DES_PRE_0_9_7_COMPATIBILITY #ifndef OPENSSL_DES_LIBDES_COMPATIBILITY #define des_cblock DES_cblock #define const_des_cblock const_DES_cblock #define des_key_schedule DES_key_schedule #define des_ecb3_encrypt(i,o,k1,k2,k3,e)\ DES_ecb3_encrypt((i),(o),(k1),(k2),(k3),(e)) #define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e)) #define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e)) DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n),(e)) #define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n)) #define des_options()\ Loading @@ -128,8 +145,8 @@ typedef struct _ossl_old_des_ks_struct DES_ncbc_encrypt((i),(o),(l),(k),(iv),(e)) #define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ DES_xcbc_encrypt((i),(o),(l),(k),(iv),(inw),(outw),(e)) #define des_cfb_encrypt(i,o,l,k,iv,e)\ DES_cfb_encrypt((i),(o),(l),(k),(iv),(e)) #define des_cfb_encrypt(i,o,n,l,k,iv,e)\ DES_cfb_encrypt((i),(o),(n),(l),(k),(iv),(e)) #define des_ecb_encrypt(i,o,k,e)\ DES_ecb_encrypt((i),(o),(k),(e)) #define des_encrypt(d,k,e)\ Loading Loading @@ -206,7 +223,7 @@ typedef struct _ossl_old_des_ks_struct #define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ _ossl_old_des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e)) #define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ _ossl_old_des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e)) _ossl_old_des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n),(e)) #define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ _ossl_old_des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n)) #define des_options()\ Loading @@ -219,8 +236,8 @@ typedef struct _ossl_old_des_ks_struct _ossl_old_des_ncbc_encrypt((i),(o),(l),(k),(iv),(e)) #define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ _ossl_old_des_xcbc_encrypt((i),(o),(l),(k),(iv),(inw),(outw),(e)) #define des_cfb_encrypt(i,o,l,k,iv,e)\ _ossl_old_des_cfb_encrypt((i),(o),(l),(k),(iv),(e)) #define des_cfb_encrypt(i,o,n,l,k,iv,e)\ _ossl_old_des_cfb_encrypt((i),(o),(n),(l),(k),(iv),(e)) #define des_ecb_encrypt(i,o,k,e)\ _ossl_old_des_ecb_encrypt((i),(o),(k),(e)) #define des_encrypt(d,k,e)\ Loading
crypto/des/destest.c +48 −51 Original line number Diff line number Diff line Loading @@ -83,11 +83,8 @@ int main(int argc, char *argv[]) } #else #include <openssl/des.h> #include <openssl/des_old.h> #if defined(PERL5) || defined(__FreeBSD__) #define crypt(c,s) (DES_crypt((c),(s))) #endif #define crypt(c,s) (des_crypt((c),(s))) /* tisk tisk - the test keys don't all have odd parity :-( */ /* test data */ Loading Loading @@ -333,8 +330,8 @@ static int ede_cfb64_test(unsigned char *cfb_cipher); int main(int argc, char *argv[]) { int i,j,err=0; DES_cblock in,out,outin,iv3,iv2; DES_key_schedule ks,ks2,ks3; des_cblock in,out,outin,iv3,iv2; des_key_schedule ks,ks2,ks3; unsigned char cbc_in[40]; unsigned char cbc_out[40]; DES_LONG cs; Loading Loading @@ -381,7 +378,7 @@ int main(int argc, char *argv[]) /* if (memcmp(cbc_out,cbc3_ok, (unsigned int)(strlen((char *)cbc_data)+1+7)/8*8) != 0) { printf("DES_ede3_cbc_encrypt encrypt error\n"); printf("des_ede3_cbc_encrypt encrypt error\n"); err=1; } */ Loading @@ -392,7 +389,7 @@ int main(int argc, char *argv[]) { int n; printf("DES_ede3_cbcm_encrypt decrypt error\n"); printf("des_ede3_cbcm_encrypt decrypt error\n"); for(n=0 ; n < i ; ++n) printf(" %02x",cbc_data[n]); printf("\n"); Loading @@ -410,8 +407,8 @@ int main(int argc, char *argv[]) memcpy(in,plain_data[i],8); memset(out,0,8); memset(outin,0,8); DES_ecb_encrypt(&in,&out,&ks,DES_ENCRYPT); DES_ecb_encrypt(&out,&outin,&ks,DES_DECRYPT); des_ecb_encrypt(&in,&out,&ks,DES_ENCRYPT); des_ecb_encrypt(&out,&outin,&ks,DES_DECRYPT); if (memcmp(out,cipher_data[i],8) != 0) { Loading @@ -438,8 +435,8 @@ int main(int argc, char *argv[]) memcpy(in,plain_data[i],8); memset(out,0,8); memset(outin,0,8); DES_ecb2_encrypt(&in,&out,&ks,&ks2,DES_ENCRYPT); DES_ecb2_encrypt(&out,&outin,&ks,&ks2,DES_DECRYPT); des_ecb2_encrypt(&in,&out,&ks,&ks2,DES_ENCRYPT); des_ecb2_encrypt(&out,&outin,&ks,&ks2,DES_DECRYPT); if (memcmp(out,cipher_ecb2[i],8) != 0) { Loading @@ -466,7 +463,7 @@ int main(int argc, char *argv[]) memset(cbc_out,0,40); memset(cbc_in,0,40); memcpy(iv3,cbc_iv,sizeof(cbc_iv)); DES_ncbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,&ks, des_ncbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,&ks, &iv3,DES_ENCRYPT); if (memcmp(cbc_out,cbc_ok,32) != 0) { Loading @@ -475,7 +472,7 @@ int main(int argc, char *argv[]) } memcpy(iv3,cbc_iv,sizeof(cbc_iv)); DES_ncbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,&ks, des_ncbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,&ks, &iv3,DES_DECRYPT); if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)) != 0) { Loading @@ -493,19 +490,19 @@ int main(int argc, char *argv[]) memset(cbc_out,0,40); memset(cbc_in,0,40); memcpy(iv3,cbc_iv,sizeof(cbc_iv)); DES_xcbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,&ks, des_xcbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,&ks, &iv3,&cbc2_key,&cbc3_key, DES_ENCRYPT); if (memcmp(cbc_out,xcbc_ok,32) != 0) { printf("DES_xcbc_encrypt encrypt error\n"); printf("des_xcbc_encrypt encrypt error\n"); err=1; } memcpy(iv3,cbc_iv,sizeof(cbc_iv)); DES_xcbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,&ks, des_xcbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,&ks, &iv3,&cbc2_key,&cbc3_key, DES_DECRYPT); if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)+1) != 0) { printf("DES_xcbc_encrypt decrypt error\n"); printf("des_xcbc_encrypt decrypt error\n"); err=1; } #endif Loading @@ -532,16 +529,16 @@ int main(int argc, char *argv[]) /* i=((i+7)/8)*8; */ memcpy(iv3,cbc_iv,sizeof(cbc_iv)); DES_ede3_cbc_encrypt(cbc_data,cbc_out,16L,&ks,&ks2,&ks3,&iv3, des_ede3_cbc_encrypt(cbc_data,cbc_out,16L,&ks,&ks2,&ks3,&iv3, DES_ENCRYPT); DES_ede3_cbc_encrypt(&(cbc_data[16]),&(cbc_out[16]),i-16,&ks,&ks2,&ks3, des_ede3_cbc_encrypt(&(cbc_data[16]),&(cbc_out[16]),i-16,&ks,&ks2,&ks3, &iv3,DES_ENCRYPT); if (memcmp(cbc_out,cbc3_ok, (unsigned int)(strlen((char *)cbc_data)+1+7)/8*8) != 0) { int n; printf("DES_ede3_cbc_encrypt encrypt error\n"); printf("des_ede3_cbc_encrypt encrypt error\n"); for(n=0 ; n < i ; ++n) printf(" %02x",cbc_out[n]); printf("\n"); Loading @@ -552,12 +549,12 @@ int main(int argc, char *argv[]) } memcpy(iv3,cbc_iv,sizeof(cbc_iv)); DES_ede3_cbc_encrypt(cbc_out,cbc_in,i,&ks,&ks2,&ks3,&iv3,DES_DECRYPT); des_ede3_cbc_encrypt(cbc_out,cbc_in,i,&ks,&ks2,&ks3,&iv3,DES_DECRYPT); if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)+1) != 0) { int n; printf("DES_ede3_cbc_encrypt decrypt error\n"); printf("des_ede3_cbc_encrypt decrypt error\n"); for(n=0 ; n < i ; ++n) printf(" %02x",cbc_data[n]); printf("\n"); Loading @@ -576,14 +573,14 @@ int main(int argc, char *argv[]) } memset(cbc_out,0,40); memset(cbc_in,0,40); DES_pcbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,&ks, des_pcbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,&ks, &cbc_iv,DES_ENCRYPT); if (memcmp(cbc_out,pcbc_ok,32) != 0) { printf("pcbc_encrypt encrypt error\n"); err=1; } DES_pcbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,&ks,&cbc_iv, des_pcbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,&ks,&cbc_iv, DES_DECRYPT); if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)+1) != 0) { Loading @@ -608,7 +605,7 @@ int main(int argc, char *argv[]) memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); for (i=0; i<sizeof(plain); i++) DES_cfb_encrypt(&(plain[i]),&(cfb_buf1[i]), des_cfb_encrypt(&(plain[i]),&(cfb_buf1[i]), 8,1,&ks,&cfb_tmp,DES_ENCRYPT); if (memcmp(cfb_cipher8,cfb_buf1,sizeof(plain)) != 0) { Loading @@ -618,7 +615,7 @@ int main(int argc, char *argv[]) memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); for (i=0; i<sizeof(plain); i++) DES_cfb_encrypt(&(cfb_buf1[i]),&(cfb_buf2[i]), des_cfb_encrypt(&(cfb_buf1[i]),&(cfb_buf2[i]), 8,1,&ks,&cfb_tmp,DES_DECRYPT); if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0) { Loading @@ -634,7 +631,7 @@ int main(int argc, char *argv[]) printf("Doing ofb\n"); DES_set_key_checked(&ofb_key,&ks); memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv)); DES_ofb_encrypt(plain,ofb_buf1,64,sizeof(plain)/8,&ks,&ofb_tmp); des_ofb_encrypt(plain,ofb_buf1,64,sizeof(plain)/8,&ks,&ofb_tmp); if (memcmp(ofb_cipher,ofb_buf1,sizeof(ofb_buf1)) != 0) { printf("ofb_encrypt encrypt error\n"); Loading @@ -647,7 +644,7 @@ ofb_buf1[8+4], ofb_cipher[8+5], ofb_cipher[8+6], ofb_cipher[8+7]); err=1; } memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv)); DES_ofb_encrypt(ofb_buf1,ofb_buf2,64,sizeof(ofb_buf1)/8,&ks,&ofb_tmp); des_ofb_encrypt(ofb_buf1,ofb_buf2,64,sizeof(ofb_buf1)/8,&ks,&ofb_tmp); if (memcmp(plain,ofb_buf2,sizeof(ofb_buf2)) != 0) { printf("ofb_encrypt decrypt error\n"); Loading @@ -668,7 +665,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); num=0; for (i=0; i<sizeof(plain); i++) { DES_ofb64_encrypt(&(plain[i]),&(ofb_buf1[i]),1,&ks,&ofb_tmp, des_ofb64_encrypt(&(plain[i]),&(ofb_buf1[i]),1,&ks,&ofb_tmp, &num); } if (memcmp(ofb_cipher,ofb_buf1,sizeof(ofb_buf1)) != 0) Loading @@ -678,7 +675,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); } memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv)); num=0; DES_ofb64_encrypt(ofb_buf1,ofb_buf2,sizeof(ofb_buf1),&ks,&ofb_tmp, des_ofb64_encrypt(ofb_buf1,ofb_buf2,sizeof(ofb_buf1),&ks,&ofb_tmp, &num); if (memcmp(plain,ofb_buf2,sizeof(ofb_buf2)) != 0) { Loading @@ -694,7 +691,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); num=0; for (i=0; i<sizeof(plain); i++) { DES_ede3_ofb64_encrypt(&(plain[i]),&(ofb_buf1[i]),1,&ks,&ks, des_ede3_ofb64_encrypt(&(plain[i]),&(ofb_buf1[i]),1,&ks,&ks, &ks,&ofb_tmp,&num); } if (memcmp(ofb_cipher,ofb_buf1,sizeof(ofb_buf1)) != 0) Loading @@ -704,7 +701,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); } memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv)); num=0; DES_ede3_ofb64_encrypt(ofb_buf1,ofb_buf2,sizeof(ofb_buf1),&ks,&ks,&ks, des_ede3_ofb64_encrypt(ofb_buf1,ofb_buf2,sizeof(ofb_buf1),&ks,&ks,&ks, &ofb_tmp,&num); if (memcmp(plain,ofb_buf2,sizeof(ofb_buf2)) != 0) { Loading @@ -714,7 +711,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); printf("Doing cbc_cksum\n"); DES_set_key_checked(&cbc_key,&ks); cs=DES_cbc_cksum(cbc_data,&cret,strlen((char *)cbc_data),&ks,&cbc_iv); cs=des_cbc_cksum(cbc_data,&cret,strlen((char *)cbc_data),&ks,&cbc_iv); if (cs != cbc_cksum_ret) { printf("bad return value (%08lX), should be %08lX\n", Loading @@ -728,8 +725,8 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); } printf("Doing quad_cksum\n"); cs=DES_quad_cksum(cbc_data,(DES_cblock *)lqret, (long)strlen((char *)cbc_data),2,(DES_cblock *)cbc_iv); cs=des_quad_cksum(cbc_data,(des_cblock *)lqret, (long)strlen((char *)cbc_data),2,(des_cblock *)cbc_iv); if (cs != 0x70d7a63aL) { printf("quad_cksum error, ret %08lx should be 70d7a63a\n", Loading Loading @@ -793,7 +790,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); for (i=0; i<4; i++) { printf(" %d",i); DES_ncbc_encrypt(&(cbc_out[i]),cbc_in, des_ncbc_encrypt(&(cbc_out[i]),cbc_in, strlen((char *)cbc_data)+1,&ks, &cbc_iv,DES_ENCRYPT); } Loading @@ -801,7 +798,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]); for (i=0; i<4; i++) { printf(" %d",i); DES_ncbc_encrypt(cbc_out,&(cbc_in[i]), des_ncbc_encrypt(cbc_out,&(cbc_in[i]), strlen((char *)cbc_data)+1,&ks, &cbc_iv,DES_ENCRYPT); } Loading Loading @@ -846,12 +843,12 @@ static char *pt(unsigned char *p) static int cfb_test(int bits, unsigned char *cfb_cipher) { DES_key_schedule ks; des_key_schedule ks; int i,err=0; DES_set_key_checked(&cfb_key,&ks); memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); DES_cfb_encrypt(plain,cfb_buf1,bits,sizeof(plain),&ks,&cfb_tmp, des_cfb_encrypt(plain,cfb_buf1,bits,sizeof(plain),&ks,&cfb_tmp, DES_ENCRYPT); if (memcmp(cfb_cipher,cfb_buf1,sizeof(plain)) != 0) { Loading @@ -861,7 +858,7 @@ static int cfb_test(int bits, unsigned char *cfb_cipher) printf("%s\n",pt(&(cfb_buf1[i]))); } memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); DES_cfb_encrypt(cfb_buf1,cfb_buf2,bits,sizeof(plain),&ks,&cfb_tmp, des_cfb_encrypt(cfb_buf1,cfb_buf2,bits,sizeof(plain),&ks,&cfb_tmp, DES_DECRYPT); if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0) { Loading @@ -875,14 +872,14 @@ static int cfb_test(int bits, unsigned char *cfb_cipher) static int cfb64_test(unsigned char *cfb_cipher) { DES_key_schedule ks; des_key_schedule ks; int err=0,i,n; DES_set_key_checked(&cfb_key,&ks); memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); n=0; DES_cfb64_encrypt(plain,cfb_buf1,12,&ks,&cfb_tmp,&n,DES_ENCRYPT); DES_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]),sizeof(plain)-12,&ks, des_cfb64_encrypt(plain,cfb_buf1,12,&ks,&cfb_tmp,&n,DES_ENCRYPT); des_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]),sizeof(plain)-12,&ks, &cfb_tmp,&n,DES_ENCRYPT); if (memcmp(cfb_cipher,cfb_buf1,sizeof(plain)) != 0) { Loading @@ -893,8 +890,8 @@ static int cfb64_test(unsigned char *cfb_cipher) } memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); n=0; DES_cfb64_encrypt(cfb_buf1,cfb_buf2,17,&ks,&cfb_tmp,&n,DES_DECRYPT); DES_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]), des_cfb64_encrypt(cfb_buf1,cfb_buf2,17,&ks,&cfb_tmp,&n,DES_DECRYPT); des_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]), sizeof(plain)-17,&ks,&cfb_tmp,&n,DES_DECRYPT); if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0) { Loading @@ -908,15 +905,15 @@ static int cfb64_test(unsigned char *cfb_cipher) static int ede_cfb64_test(unsigned char *cfb_cipher) { DES_key_schedule ks; des_key_schedule ks; int err=0,i,n; DES_set_key_checked(&cfb_key,&ks); memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); n=0; DES_ede3_cfb64_encrypt(plain,cfb_buf1,12,&ks,&ks,&ks,&cfb_tmp,&n, des_ede3_cfb64_encrypt(plain,cfb_buf1,12,&ks,&ks,&ks,&cfb_tmp,&n, DES_ENCRYPT); DES_ede3_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]), des_ede3_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]), sizeof(plain)-12,&ks,&ks,&ks, &cfb_tmp,&n,DES_ENCRYPT); if (memcmp(cfb_cipher,cfb_buf1,sizeof(plain)) != 0) Loading @@ -928,9 +925,9 @@ static int ede_cfb64_test(unsigned char *cfb_cipher) } memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv)); n=0; DES_ede3_cfb64_encrypt(cfb_buf1,cfb_buf2,(long)17,&ks,&ks,&ks, des_ede3_cfb64_encrypt(cfb_buf1,cfb_buf2,(long)17,&ks,&ks,&ks, &cfb_tmp,&n,DES_DECRYPT); DES_ede3_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]), des_ede3_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]), sizeof(plain)-17,&ks,&ks,&ks, &cfb_tmp,&n,DES_DECRYPT); if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0) Loading