Lines 27-34
struct blowfish_state {
Link Here
|
27 |
}; |
27 |
}; |
28 |
|
28 |
|
29 |
struct des3_state { |
29 |
struct des3_state { |
30 |
des_key_schedule k1, k2, k3; |
30 |
DES_key_schedule k1, k2, k3; |
31 |
des_cblock iv1, iv2, iv3; |
31 |
DES_cblock iv1, iv2, iv3; |
32 |
}; |
32 |
}; |
33 |
|
33 |
|
34 |
void |
34 |
void |
Lines 153-165
des3_init(u_char *sesskey, int len)
Link Here
|
153 |
if ((state = malloc(sizeof(*state))) == NULL) |
153 |
if ((state = malloc(sizeof(*state))) == NULL) |
154 |
err(1, "malloc"); |
154 |
err(1, "malloc"); |
155 |
|
155 |
|
156 |
des_set_key((void *)sesskey, state->k1); |
156 |
DES_set_key((void *)sesskey, &state->k1); |
157 |
des_set_key((void *)(sesskey + 8), state->k2); |
157 |
DES_set_key((void *)(sesskey + 8), &state->k2); |
158 |
|
158 |
|
159 |
if (len <= 16) |
159 |
if (len <= 16) |
160 |
des_set_key((void *)sesskey, state->k3); |
160 |
DES_set_key((void *)sesskey, &state->k3); |
161 |
else |
161 |
else |
162 |
des_set_key((void *)(sesskey + 16), state->k3); |
162 |
DES_set_key((void *)(sesskey + 16), &state->k3); |
163 |
|
163 |
|
164 |
memset(state->iv1, 0, 8); |
164 |
memset(state->iv1, 0, 8); |
165 |
memset(state->iv2, 0, 8); |
165 |
memset(state->iv2, 0, 8); |
Lines 175-183
des3_encrypt(u_char *src, u_char *dst, int len, void *state)
Link Here
|
175 |
estate = (struct des3_state *)state; |
175 |
estate = (struct des3_state *)state; |
176 |
memcpy(estate->iv1, estate->iv2, 8); |
176 |
memcpy(estate->iv1, estate->iv2, 8); |
177 |
|
177 |
|
178 |
des_ncbc_encrypt(src, dst, len, estate->k1, &estate->iv1, DES_ENCRYPT); |
178 |
DES_ncbc_encrypt(src, dst, len, &estate->k1, &estate->iv1, DES_ENCRYPT); |
179 |
des_ncbc_encrypt(dst, dst, len, estate->k2, &estate->iv2, DES_DECRYPT); |
179 |
DES_ncbc_encrypt(dst, dst, len, &estate->k2, &estate->iv2, DES_DECRYPT); |
180 |
des_ncbc_encrypt(dst, dst, len, estate->k3, &estate->iv3, DES_ENCRYPT); |
180 |
DES_ncbc_encrypt(dst, dst, len, &estate->k3, &estate->iv3, DES_ENCRYPT); |
181 |
} |
181 |
} |
182 |
|
182 |
|
183 |
void |
183 |
void |
Lines 188-194
des3_decrypt(u_char *src, u_char *dst, int len, void *state)
Link Here
|
188 |
dstate = (struct des3_state *)state; |
188 |
dstate = (struct des3_state *)state; |
189 |
memcpy(dstate->iv1, dstate->iv2, 8); |
189 |
memcpy(dstate->iv1, dstate->iv2, 8); |
190 |
|
190 |
|
191 |
des_ncbc_encrypt(src, dst, len, dstate->k3, &dstate->iv3, DES_DECRYPT); |
191 |
DES_ncbc_encrypt(src, dst, len, &dstate->k3, &dstate->iv3, DES_DECRYPT); |
192 |
des_ncbc_encrypt(dst, dst, len, dstate->k2, &dstate->iv2, DES_ENCRYPT); |
192 |
DES_ncbc_encrypt(dst, dst, len, &dstate->k2, &dstate->iv2, DES_ENCRYPT); |
193 |
des_ncbc_encrypt(dst, dst, len, dstate->k1, &dstate->iv1, DES_DECRYPT); |
193 |
DES_ncbc_encrypt(dst, dst, len, &dstate->k1, &dstate->iv1, DES_DECRYPT); |
194 |
} |
194 |
} |