Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 571138
Collapse All | Expand All

(-)a/sshcrypto.c (-12 / +12 lines)
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
}

Return to bug 571138