version 1.221, 2021/01/26 05:32:21 |
version 1.222, 2021/01/27 09:26:54 |
|
|
if (key != NULL && authctxt->valid) { |
if (key != NULL && authctxt->valid) { |
/* These should not make it past the privsep child */ |
/* These should not make it past the privsep child */ |
if (sshkey_type_plain(key->type) == KEY_RSA && |
if (sshkey_type_plain(key->type) == KEY_RSA && |
(datafellows & SSH_BUG_RSASIGMD5) != 0) |
(ssh->compat & SSH_BUG_RSASIGMD5) != 0) |
fatal_f("passed a SSH_BUG_RSASIGMD5 key"); |
fatal_f("passed a SSH_BUG_RSASIGMD5 key"); |
|
|
switch (type) { |
switch (type) { |
|
|
} |
} |
|
|
static int |
static int |
monitor_valid_userblob(const u_char *data, u_int datalen) |
monitor_valid_userblob(struct ssh *ssh, const u_char *data, u_int datalen) |
{ |
{ |
struct sshbuf *b; |
struct sshbuf *b; |
const u_char *p; |
const u_char *p; |
|
|
if ((b = sshbuf_from(data, datalen)) == NULL) |
if ((b = sshbuf_from(data, datalen)) == NULL) |
fatal_f("sshbuf_from"); |
fatal_f("sshbuf_from"); |
|
|
if (datafellows & SSH_OLD_SESSIONID) { |
if (ssh->compat & SSH_OLD_SESSIONID) { |
p = sshbuf_ptr(b); |
p = sshbuf_ptr(b); |
len = sshbuf_len(b); |
len = sshbuf_len(b); |
if ((session_id2 == NULL) || |
if ((session_id2 == NULL) || |
|
|
|
|
switch (key_blobtype) { |
switch (key_blobtype) { |
case MM_USERKEY: |
case MM_USERKEY: |
valid_data = monitor_valid_userblob(data, datalen); |
valid_data = monitor_valid_userblob(ssh, data, datalen); |
auth_method = "publickey"; |
auth_method = "publickey"; |
break; |
break; |
case MM_HOSTKEY: |
case MM_HOSTKEY: |