version 1.94, 2019/09/06 04:53:27 |
version 1.95, 2019/11/25 00:51:37 |
|
|
int r, pktype; |
int r, pktype; |
int authenticated = 0; |
int authenticated = 0; |
struct sshauthopt *authopts = NULL; |
struct sshauthopt *authopts = NULL; |
|
struct sshkey_sig_details *sig_details = NULL; |
|
|
if ((r = sshpkt_get_u8(ssh, &have_sig)) != 0 || |
if ((r = sshpkt_get_u8(ssh, &have_sig)) != 0 || |
(r = sshpkt_get_cstring(ssh, &pkalg, NULL)) != 0 || |
(r = sshpkt_get_cstring(ssh, &pkalg, NULL)) != 0 || |
|
|
PRIVSEP(sshkey_verify(key, sig, slen, |
PRIVSEP(sshkey_verify(key, sig, slen, |
sshbuf_ptr(b), sshbuf_len(b), |
sshbuf_ptr(b), sshbuf_len(b), |
(ssh->compat & SSH_BUG_SIGTYPE) == 0 ? pkalg : NULL, |
(ssh->compat & SSH_BUG_SIGTYPE) == 0 ? pkalg : NULL, |
ssh->compat)) == 0) { |
ssh->compat, &sig_details)) == 0) { |
authenticated = 1; |
authenticated = 1; |
} |
} |
|
if (sig_details != NULL) { |
|
debug("%s: sk_counter = %u, sk_flags = 0x%02x", |
|
__func__, sig_details->sk_counter, |
|
sig_details->sk_flags); |
|
} |
auth2_record_key(authctxt, authenticated, key); |
auth2_record_key(authctxt, authenticated, key); |
} else { |
} else { |
debug("%s: test pkalg %s pkblob %s%s%s", |
debug("%s: test pkalg %s pkblob %s%s%s", |
|
|
free(key_s); |
free(key_s); |
free(ca_s); |
free(ca_s); |
free(sig); |
free(sig); |
|
sshkey_sig_details_free(sig_details); |
return authenticated; |
return authenticated; |
} |
} |
|
|