| 934 |
challenge + decrypted_challenge_len - |
challenge + decrypted_challenge_len - |
| 935 |
SSH_RSA_CHALLENGE_LENGTH, SSH_RSA_CHALLENGE_LENGTH); |
SSH_RSA_CHALLENGE_LENGTH, SSH_RSA_CHALLENGE_LENGTH); |
| 936 |
} else { |
} else { |
| 937 |
memset(decrypted_challenge, 0, |
SecureZeroMemory(decrypted_challenge, |
| 938 |
SSH_RSA_CHALLENGE_LENGTH - decrypted_challenge_len); |
SSH_RSA_CHALLENGE_LENGTH - decrypted_challenge_len); |
| 939 |
memcpy(decrypted_challenge + SSH_RSA_CHALLENGE_LENGTH - |
memcpy(decrypted_challenge + SSH_RSA_CHALLENGE_LENGTH - |
| 940 |
decrypted_challenge_len, challenge, |
decrypted_challenge_len, challenge, |
| 960 |
DES_set_key((const_DES_cblock *) session_key, &state->k1); |
DES_set_key((const_DES_cblock *) session_key, &state->k1); |
| 961 |
DES_set_key((const_DES_cblock *) (session_key + 8), &state->k2); |
DES_set_key((const_DES_cblock *) (session_key + 8), &state->k2); |
| 962 |
DES_set_key((const_DES_cblock *) (session_key + 16), &state->k3); |
DES_set_key((const_DES_cblock *) (session_key + 16), &state->k3); |
| 963 |
memset(state->ivec1, 0, 8); |
SecureZeroMemory(state->ivec1, 8); |
| 964 |
memset(state->ivec2, 0, 8); |
SecureZeroMemory(state->ivec2, 8); |
| 965 |
memset(state->ivec3, 0, 8); |
SecureZeroMemory(state->ivec3, 8); |
| 966 |
} |
} |
| 967 |
|
|
| 968 |
static void cDES_init(char *session_key, CipherDESState *state) |
static void cDES_init(char *session_key, CipherDESState *state) |
| 969 |
{ |
{ |
| 970 |
DES_set_key((const_DES_cblock *) session_key, &state->k); |
DES_set_key((const_DES_cblock *) session_key, &state->k); |
| 971 |
memset(state->ivec, 0, 8); |
SecureZeroMemory(state->ivec, 8); |
| 972 |
} |
} |
| 973 |
|
|
| 974 |
static void cBlowfish_init(char *session_key, |
static void cBlowfish_init(char *session_key, |
| 975 |
CipherBlowfishState *state) |
CipherBlowfishState *state) |
| 976 |
{ |
{ |
| 977 |
BF_set_key(&state->k, 32, session_key); |
BF_set_key(&state->k, 32, session_key); |
| 978 |
memset(state->ivec, 0, 8); |
SecureZeroMemory(state->ivec, 8); |
| 979 |
} |
} |
| 980 |
|
|
| 981 |
|
|
| 1174 |
notify_fatal_error(pvar, pvar->ts->UIMsg, TRUE); |
notify_fatal_error(pvar, pvar->ts->UIMsg, TRUE); |
| 1175 |
return FALSE; |
return FALSE; |
| 1176 |
} else { |
} else { |
| 1177 |
memset(encryption_key, 0, CRYPT_KEY_LENGTH); |
SecureZeroMemory(encryption_key, CRYPT_KEY_LENGTH); |
| 1178 |
memset(decryption_key, 0, CRYPT_KEY_LENGTH); |
SecureZeroMemory(decryption_key, CRYPT_KEY_LENGTH); |
| 1179 |
return TRUE; |
return TRUE; |
| 1180 |
} |
} |
| 1181 |
} |
} |
| 1345 |
&state.k2); |
&state.k2); |
| 1346 |
DES_set_key((const_DES_cblock *) passphrase_key, |
DES_set_key((const_DES_cblock *) passphrase_key, |
| 1347 |
&state.k3); |
&state.k3); |
| 1348 |
memset(state.ivec1, 0, 8); |
SecureZeroMemory(state.ivec1, 8); |
| 1349 |
memset(state.ivec2, 0, 8); |
SecureZeroMemory(state.ivec2, 8); |
| 1350 |
memset(state.ivec3, 0, 8); |
SecureZeroMemory(state.ivec3, 8); |
| 1351 |
DES_ncbc_encrypt(buf, buf, bytes, |
DES_ncbc_encrypt(buf, buf, bytes, |
| 1352 |
&state.k3, &state.ivec3, DES_DECRYPT); |
&state.k3, &state.ivec3, DES_DECRYPT); |
| 1353 |
DES_ncbc_encrypt(buf, buf, bytes, |
DES_ncbc_encrypt(buf, buf, bytes, |
| 1370 |
CipherBlowfishState state; |
CipherBlowfishState state; |
| 1371 |
|
|
| 1372 |
BF_set_key(&state.k, 16, passphrase_key); |
BF_set_key(&state.k, 16, passphrase_key); |
| 1373 |
memset(state.ivec, 0, 8); |
SecureZeroMemory(state.ivec, 8); |
| 1374 |
flip_endianness(buf, bytes); |
flip_endianness(buf, bytes); |
| 1375 |
BF_cbc_encrypt(buf, buf, bytes, &state.k, state.ivec, |
BF_cbc_encrypt(buf, buf, bytes, &state.k, state.ivec, |
| 1376 |
BF_DECRYPT); |
BF_DECRYPT); |