diff options
author | milo <milo.sshiva@gmail.com> | 2009-07-27 17:59:02 +0200 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2009-07-27 20:27:07 +0200 |
commit | e8f7801540e8be8b029b09269196773767a5983e (patch) | |
tree | 8cc08e3cbcc4e919f132fae4a5cde91bea8e7e94 /libssh/dh.c | |
parent | cdde79418a86da1c9579a022ec8c4ed73fe29f1a (diff) | |
download | libssh-e8f7801540e8be8b029b09269196773767a5983e.tar.gz libssh-e8f7801540e8be8b029b09269196773767a5983e.tar.xz libssh-e8f7801540e8be8b029b09269196773767a5983e.zip |
Public key authentication server side
Diffstat (limited to 'libssh/dh.c')
-rw-r--r-- | libssh/dh.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libssh/dh.c b/libssh/dh.c index b3512a9..7fc3a5e 100644 --- a/libssh/dh.c +++ b/libssh/dh.c @@ -891,8 +891,8 @@ static int match(const char *group, const char *object){ return 0; } -static int sig_verify(SSH_SESSION *session, ssh_public_key pubkey, - SIGNATURE *signature, unsigned char *digest) { +int sig_verify(SSH_SESSION *session, ssh_public_key pubkey, + SIGNATURE *signature, unsigned char *digest, int size) { #ifdef HAVE_LIBGCRYPT gcry_error_t valid = 0; gcry_sexp_t gcryhash; @@ -901,7 +901,7 @@ static int sig_verify(SSH_SESSION *session, ssh_public_key pubkey, #endif unsigned char hash[SHA_DIGEST_LEN + 1] = {0}; - sha1(digest,SHA_DIGEST_LEN, hash + 1); + sha1(digest, size, hash + 1); #ifdef DEBUG_CRYPTO ssh_print_hexa("Hash to be verified with dsa", hash + 1, SHA_DIGEST_LEN); @@ -1027,7 +1027,8 @@ int signature_verify(SSH_SESSION *session, ssh_string signature) { ssh_log(session, SSH_LOG_FUNCTIONS, "Going to verify a %s type signature", pubkey->type_c); - err = sig_verify(session,pubkey,sign,session->next_crypto->session_id); + err = sig_verify(session,pubkey,sign, + session->next_crypto->session_id,SHA_DIGEST_LEN); signature_free(sign); session->next_crypto->server_pubkey_type = pubkey->type_c; publickey_free(pubkey); |