| 1132 | |
| 1133 | |
| 1134 | void DES_ede3_cbc_encrypt(const byte* input, byte* output, long sz, |
| 1135 | DES_key_schedule* ks1, DES_key_schedule* ks2, |
| 1136 | DES_key_schedule* ks3, DES_cblock* ivec, int enc) |
| 1137 | { |
| 1138 | DES_EDE des; |
| 1139 | byte key[DES_EDE_KEY_SZ]; |
| 1140 | |
| 1141 | memcpy(key, *ks1, DES_BLOCK); |
| 1142 | memcpy(&key[DES_BLOCK], *ks2, DES_BLOCK); |
| 1143 | memcpy(&key[DES_BLOCK * 2], *ks3, DES_BLOCK); |
| 1144 | |
| 1145 | if (enc) { |
| 1146 | des.set_encryptKey(key, *ivec); |
| 1147 | des.encrypt(output, input, sz); |
| 1148 | } |
| 1149 | else { |
| 1150 | des.set_decryptKey(key, *ivec); |
| 1151 | des.decrypt(output, input, sz); |
| 1152 | } |
| 1153 | } |
| 1154 | |
| 1155 | |
| 1156 | // functions for libcurl |