1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-11-27 13:21:11 +03:00

wrapper: Reformat crypto_free()

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Reviewed-by: Jakub Jelen <jjelen@redhat.com>
This commit is contained in:
Andreas Schneider
2018-09-03 17:39:56 +02:00
parent 7867126aa6
commit 9c5d2d4543

View File

@@ -146,81 +146,78 @@ struct ssh_crypto_struct *crypto_new(void) {
return crypto; return crypto;
} }
void crypto_free(struct ssh_crypto_struct *crypto){ void crypto_free(struct ssh_crypto_struct *crypto)
int i; {
if (crypto == NULL) { int i;
return; if (crypto == NULL) {
} return;
}
ssh_key_free(crypto->server_pubkey); ssh_key_free(crypto->server_pubkey);
cipher_free(crypto->in_cipher); cipher_free(crypto->in_cipher);
cipher_free(crypto->out_cipher); cipher_free(crypto->out_cipher);
bignum_safe_free(crypto->e); bignum_safe_free(crypto->e);
bignum_safe_free(crypto->f); bignum_safe_free(crypto->f);
bignum_safe_free(crypto->x); bignum_safe_free(crypto->x);
bignum_safe_free(crypto->y); bignum_safe_free(crypto->y);
bignum_safe_free(crypto->k); bignum_safe_free(crypto->k);
#ifdef HAVE_ECDH #ifdef HAVE_ECDH
SAFE_FREE(crypto->ecdh_client_pubkey); SAFE_FREE(crypto->ecdh_client_pubkey);
SAFE_FREE(crypto->ecdh_server_pubkey); SAFE_FREE(crypto->ecdh_server_pubkey);
if(crypto->ecdh_privkey != NULL){ if(crypto->ecdh_privkey != NULL){
#ifdef HAVE_OPENSSL_ECC #ifdef HAVE_OPENSSL_ECC
EC_KEY_free(crypto->ecdh_privkey); EC_KEY_free(crypto->ecdh_privkey);
#elif defined HAVE_GCRYPT_ECC #elif defined HAVE_GCRYPT_ECC
gcry_sexp_release(crypto->ecdh_privkey); gcry_sexp_release(crypto->ecdh_privkey);
#endif #endif
crypto->ecdh_privkey = NULL; crypto->ecdh_privkey = NULL;
} }
#endif #endif
if(crypto->session_id != NULL){ if (crypto->session_id != NULL) {
memset(crypto->session_id, '\0', crypto->digest_len); memset(crypto->session_id, '\0', crypto->digest_len);
SAFE_FREE(crypto->session_id); SAFE_FREE(crypto->session_id);
} }
if(crypto->secret_hash != NULL){ if (crypto->secret_hash != NULL) {
memset(crypto->secret_hash, '\0', crypto->digest_len); memset(crypto->secret_hash, '\0', crypto->digest_len);
SAFE_FREE(crypto->secret_hash); SAFE_FREE(crypto->secret_hash);
} }
#ifdef WITH_ZLIB #ifdef WITH_ZLIB
if (crypto->compress_out_ctx && if (crypto->compress_out_ctx &&
(deflateEnd(crypto->compress_out_ctx) != 0)) { (deflateEnd(crypto->compress_out_ctx) != 0)) {
inflateEnd(crypto->compress_out_ctx); inflateEnd(crypto->compress_out_ctx);
} }
SAFE_FREE(crypto->compress_out_ctx); SAFE_FREE(crypto->compress_out_ctx);
if (crypto->compress_in_ctx && if (crypto->compress_in_ctx &&
(deflateEnd(crypto->compress_in_ctx) != 0)) { (deflateEnd(crypto->compress_in_ctx) != 0)) {
inflateEnd(crypto->compress_in_ctx); inflateEnd(crypto->compress_in_ctx);
} }
SAFE_FREE(crypto->compress_in_ctx); SAFE_FREE(crypto->compress_in_ctx);
#endif /* WITH_ZLIB */ #endif /* WITH_ZLIB */
if(crypto->encryptIV)
SAFE_FREE(crypto->encryptIV); SAFE_FREE(crypto->encryptIV);
if(crypto->decryptIV)
SAFE_FREE(crypto->decryptIV); SAFE_FREE(crypto->decryptIV);
if(crypto->encryptMAC)
SAFE_FREE(crypto->encryptMAC); SAFE_FREE(crypto->encryptMAC);
if(crypto->decryptMAC)
SAFE_FREE(crypto->decryptMAC); SAFE_FREE(crypto->decryptMAC);
if(crypto->encryptkey){ if (crypto->encryptkey != NULL) {
memset(crypto->encryptkey, 0, crypto->digest_len); memset(crypto->encryptkey, 0, crypto->digest_len);
SAFE_FREE(crypto->encryptkey); SAFE_FREE(crypto->encryptkey);
} }
if(crypto->decryptkey){ if (crypto->decryptkey != NULL) {
memset(crypto->decryptkey, 0, crypto->digest_len); memset(crypto->decryptkey, 0, crypto->digest_len);
SAFE_FREE(crypto->decryptkey); SAFE_FREE(crypto->decryptkey);
} }
for (i = 0; i < SSH_KEX_METHODS; i++) { for (i = 0; i < SSH_KEX_METHODS; i++) {
SAFE_FREE(crypto->client_kex.methods[i]); SAFE_FREE(crypto->client_kex.methods[i]);
SAFE_FREE(crypto->server_kex.methods[i]); SAFE_FREE(crypto->server_kex.methods[i]);
SAFE_FREE(crypto->kex_methods[i]); SAFE_FREE(crypto->kex_methods[i]);
} }
explicit_bzero(crypto, sizeof(struct ssh_crypto_struct)); explicit_bzero(crypto, sizeof(struct ssh_crypto_struct));
SAFE_FREE(crypto); SAFE_FREE(crypto);
} }
static int crypt_set_algorithms2(ssh_session session){ static int crypt_set_algorithms2(ssh_session session){