version 1.9, 2000/05/08 17:12:16 |
version 1.10, 2000/05/08 17:42:25 |
|
|
buffer_append(&b, session_id2, session_id2_len); |
buffer_append(&b, session_id2, session_id2_len); |
buffer_put_char(&b, SSH2_MSG_USERAUTH_REQUEST); |
buffer_put_char(&b, SSH2_MSG_USERAUTH_REQUEST); |
buffer_put_cstring(&b, server_user); |
buffer_put_cstring(&b, server_user); |
buffer_put_cstring(&b, service); |
buffer_put_cstring(&b, |
|
datafellows & SSH_BUG_PUBKEYAUTH ? |
|
"ssh-userauth" : |
|
service); |
buffer_put_cstring(&b, "publickey"); |
buffer_put_cstring(&b, "publickey"); |
buffer_put_char(&b, 1); |
buffer_put_char(&b, 1); |
buffer_put_cstring(&b, KEX_DSS); |
buffer_put_cstring(&b, KEX_DSS); |
buffer_put_string(&b, blob, bloblen); |
buffer_put_string(&b, blob, bloblen); |
xfree(blob); |
|
|
|
/* generate signature */ |
/* generate signature */ |
dsa_sign(k, &signature, &slen, buffer_ptr(&b), buffer_len(&b)); |
dsa_sign(k, &signature, &slen, buffer_ptr(&b), buffer_len(&b)); |
|
|
#ifdef DEBUG_DSS |
#ifdef DEBUG_DSS |
buffer_dump(&b); |
buffer_dump(&b); |
#endif |
#endif |
|
if (datafellows & SSH_BUG_PUBKEYAUTH) { |
|
/* e.g. ssh-2.0.13: data-to-be-signed != data-on-the-wire */ |
|
buffer_clear(&b); |
|
buffer_append(&b, session_id2, session_id2_len); |
|
buffer_put_char(&b, SSH2_MSG_USERAUTH_REQUEST); |
|
buffer_put_cstring(&b, server_user); |
|
buffer_put_cstring(&b, service); |
|
buffer_put_cstring(&b, "publickey"); |
|
buffer_put_char(&b, 1); |
|
buffer_put_cstring(&b, KEX_DSS); |
|
buffer_put_string(&b, blob, bloblen); |
|
} |
|
xfree(blob); |
/* append signature */ |
/* append signature */ |
buffer_put_string(&b, signature, slen); |
buffer_put_string(&b, signature, slen); |
xfree(signature); |
xfree(signature); |