summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/des/cbc3_enc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/des/cbc3_enc.c')
-rw-r--r--src/lib/libcrypto/des/cbc3_enc.c20
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 */
62void des_3cbc_encrypt(des_cblock *input, des_cblock *output, long length, 62void 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));