diff options
Diffstat (limited to 'src/lib/libcrypto/des/cbc3_enc.c')
-rw-r--r-- | src/lib/libcrypto/des/cbc3_enc.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/lib/libcrypto/des/cbc3_enc.c b/src/lib/libcrypto/des/cbc3_enc.c index 3863a676d4..527e74f3de 100644 --- a/src/lib/libcrypto/des/cbc3_enc.c +++ b/src/lib/libcrypto/des/cbc3_enc.c | |||
@@ -58,7 +58,7 @@ | |||
58 | 58 | ||
59 | #include "des_locl.h" | 59 | #include "des_locl.h" |
60 | 60 | ||
61 | /* HAS BUGS? DON'T USE - this is only present for use in des.c */ | 61 | /* HAS BUGS! DON'T USE - this is only present for use in des.c */ |
62 | void des_3cbc_encrypt(des_cblock *input, des_cblock *output, long length, | 62 | void des_3cbc_encrypt(des_cblock *input, des_cblock *output, long length, |
63 | des_key_schedule ks1, des_key_schedule ks2, des_cblock *iv1, | 63 | des_key_schedule ks1, des_key_schedule ks2, des_cblock *iv1, |
64 | des_cblock *iv2, int enc) | 64 | des_cblock *iv2, int enc) |
@@ -69,11 +69,14 @@ void des_3cbc_encrypt(des_cblock *input, des_cblock *output, long length, | |||
69 | 69 | ||
70 | if (enc == DES_ENCRYPT) | 70 | if (enc == DES_ENCRYPT) |
71 | { | 71 | { |
72 | des_cbc_encrypt(input,output,length,ks1,iv1,enc); | 72 | des_cbc_encrypt((unsigned char*)input, |
73 | (unsigned char*)output,length,ks1,iv1,enc); | ||
73 | if (length >= sizeof(des_cblock)) | 74 | if (length >= sizeof(des_cblock)) |
74 | memcpy(niv1,output[off],sizeof(des_cblock)); | 75 | memcpy(niv1,output[off],sizeof(des_cblock)); |
75 | des_cbc_encrypt(output,output,l8,ks2,iv1,!enc); | 76 | des_cbc_encrypt((unsigned char*)output, |
76 | des_cbc_encrypt(output,output,l8,ks1,iv2, enc); | 77 | (unsigned char*)output,l8,ks2,iv1,!enc); |
78 | des_cbc_encrypt((unsigned char*)output, | ||
79 | (unsigned char*)output,l8,ks1,iv2,enc); | ||
77 | if (length >= sizeof(des_cblock)) | 80 | if (length >= sizeof(des_cblock)) |
78 | memcpy(niv2,output[off],sizeof(des_cblock)); | 81 | memcpy(niv2,output[off],sizeof(des_cblock)); |
79 | } | 82 | } |
@@ -81,11 +84,14 @@ void des_3cbc_encrypt(des_cblock *input, des_cblock *output, long length, | |||
81 | { | 84 | { |
82 | if (length >= sizeof(des_cblock)) | 85 | if (length >= sizeof(des_cblock)) |
83 | memcpy(niv2,input[off],sizeof(des_cblock)); | 86 | memcpy(niv2,input[off],sizeof(des_cblock)); |
84 | des_cbc_encrypt(input,output,l8,ks1,iv2,enc); | 87 | des_cbc_encrypt((unsigned char*)input, |
85 | des_cbc_encrypt(output,output,l8,ks2,iv1,!enc); | 88 | (unsigned char*)output,l8,ks1,iv2,enc); |
89 | des_cbc_encrypt((unsigned char*)output, | ||
90 | (unsigned char*)output,l8,ks2,iv1,!enc); | ||
86 | if (length >= sizeof(des_cblock)) | 91 | if (length >= sizeof(des_cblock)) |
87 | memcpy(niv1,output[off],sizeof(des_cblock)); | 92 | memcpy(niv1,output[off],sizeof(des_cblock)); |
88 | des_cbc_encrypt(output,output,length,ks1,iv1, enc); | 93 | des_cbc_encrypt((unsigned char*)output, |
94 | (unsigned char*)output,length,ks1,iv1,enc); | ||
89 | } | 95 | } |
90 | memcpy(*iv1,niv1,sizeof(des_cblock)); | 96 | memcpy(*iv1,niv1,sizeof(des_cblock)); |
91 | memcpy(*iv2,niv2,sizeof(des_cblock)); | 97 | memcpy(*iv2,niv2,sizeof(des_cblock)); |