diff options
-rw-r--r-- | include/libssh/libssh.h | 1 | ||||
-rw-r--r-- | libssh/dh.c | 16 |
2 files changed, 17 insertions, 0 deletions
diff --git a/include/libssh/libssh.h b/include/libssh/libssh.h index 76ede946..699fe28e 100644 --- a/include/libssh/libssh.h +++ b/include/libssh/libssh.h @@ -245,6 +245,7 @@ int ssh_get_random(void *where,int len,int strong); /* this one can be called by the client to see the hash of the public key before accepting it */ int ssh_get_pubkey_hash(SSH_SESSION *session, unsigned char **hash); +void ssh_clean_pubkey_hash(unsigned char **hash); ssh_string ssh_get_pubkey(SSH_SESSION *session); /* in connect.c */ diff --git a/libssh/dh.c b/libssh/dh.c index 0edd19da..26bcbc7a 100644 --- a/libssh/dh.c +++ b/libssh/dh.c @@ -847,6 +847,22 @@ int ssh_get_pubkey_hash(SSH_SESSION *session, unsigned char **hash) { return MD5_DIGEST_LEN; } +/** \addtogroup ssh_session + * @{ */ +/** + * @brief Deallocate the hash obtained by ssh_get_pubkey_hash. + * This is required under Microsoft platform as this library might use a + * different C library than your software, hence a different heap. + * + * @param hash The buffer to deallocate. + * + * @see ssh_get_pubkey_hash() + */ +void ssh_clean_pubkey_hash(unsigned char **hash) { + SAFE_FREE(*hash); + *hash = NULL; +} + ssh_string ssh_get_pubkey(SSH_SESSION *session){ return string_copy(session->current_crypto->server_pubkey); } |