Skip to content
Snippets Groups Projects
Commit 239eef63 authored by Jakub Jelen's avatar Jakub Jelen Committed by Andreas Schneider
Browse files

packet: Check if set_*_key functions exists before calling it

parent 201fd661
No related branches found
No related tags found
Loading
...@@ -1969,23 +1969,27 @@ ssh_packet_set_newkeys(ssh_session session, ...@@ -1969,23 +1969,27 @@ ssh_packet_set_newkeys(ssh_session session,
session->opts.rekey_time/1000); session->opts.rekey_time/1000);
} }
/* Initialize the encryption and decryption keys in next_crypto */ if (in_cipher->set_decrypt_key) {
rc = in_cipher->set_decrypt_key(in_cipher, /* Initialize the encryption and decryption keys in next_crypto */
session->next_crypto->decryptkey, rc = in_cipher->set_decrypt_key(in_cipher,
session->next_crypto->decryptIV); session->next_crypto->decryptkey,
if (rc < 0) { session->next_crypto->decryptIV);
/* On error, make sure it is not used */ if (rc < 0) {
session->next_crypto->used = 0; /* On error, make sure it is not used */
return SSH_ERROR; session->next_crypto->used = 0;
return SSH_ERROR;
}
} }
rc = out_cipher->set_encrypt_key(out_cipher, if (out_cipher->set_encrypt_key) {
session->next_crypto->encryptkey, rc = out_cipher->set_encrypt_key(out_cipher,
session->next_crypto->encryptIV); session->next_crypto->encryptkey,
if (rc < 0) { session->next_crypto->encryptIV);
/* On error, make sure it is not used */ if (rc < 0) {
session->next_crypto->used = 0; /* On error, make sure it is not used */
return SSH_ERROR; session->next_crypto->used = 0;
return SSH_ERROR;
}
} }
return SSH_OK; return SSH_OK;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment