version 1.19, 2002/09/26 11:38:43 |
version 1.19.2.1, 2003/04/01 00:12:13 |
|
|
#include "dh.h" |
#include "dh.h" |
#include "kex.h" |
#include "kex.h" |
#include "auth.h" |
#include "auth.h" |
|
#include "auth-options.h" |
#include "buffer.h" |
#include "buffer.h" |
#include "bufaux.h" |
#include "bufaux.h" |
#include "packet.h" |
#include "packet.h" |
|
|
Buffer m; |
Buffer m; |
u_char *blob; |
u_char *blob; |
u_int len; |
u_int len; |
int allowed = 0; |
int allowed = 0, have_forced = 0; |
|
|
debug3("%s entering", __func__); |
debug3("%s entering", __func__); |
|
|
|
|
|
|
allowed = buffer_get_int(&m); |
allowed = buffer_get_int(&m); |
|
|
|
/* fake forced command */ |
|
auth_clear_options(); |
|
have_forced = buffer_get_int(&m); |
|
forced_command = have_forced ? xstrdup("true") : NULL; |
|
|
/* Send potential debug messages */ |
/* Send potential debug messages */ |
mm_send_debug(&m); |
mm_send_debug(&m); |
|
|
|
|
u_int *numprompts, char ***prompts, u_int **echo_on) |
u_int *numprompts, char ***prompts, u_int **echo_on) |
{ |
{ |
Buffer m; |
Buffer m; |
int res; |
u_int success; |
char *challenge; |
char *challenge; |
|
|
debug3("%s: entering", __func__); |
debug3("%s: entering", __func__); |
|
|
|
|
mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_BSDAUTHQUERY, |
mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_BSDAUTHQUERY, |
&m); |
&m); |
res = buffer_get_int(&m); |
success = buffer_get_int(&m); |
if (res == -1) { |
if (success == 0) { |
debug3("%s: no challenge", __func__); |
debug3("%s: no challenge", __func__); |
buffer_free(&m); |
buffer_free(&m); |
return (-1); |
return (-1); |
|
|
u_int *numprompts, char ***prompts, u_int **echo_on) |
u_int *numprompts, char ***prompts, u_int **echo_on) |
{ |
{ |
Buffer m; |
Buffer m; |
int len, res; |
int len; |
|
u_int success; |
char *p, *challenge; |
char *p, *challenge; |
|
|
debug3("%s: entering", __func__); |
debug3("%s: entering", __func__); |
|
|
|
|
mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_SKEYQUERY, |
mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_SKEYQUERY, |
&m); |
&m); |
res = buffer_get_int(&m); |
success = buffer_get_int(&m); |
if (res == -1) { |
if (success == 0) { |
debug3("%s: no challenge", __func__); |
debug3("%s: no challenge", __func__); |
buffer_free(&m); |
buffer_free(&m); |
return (-1); |
return (-1); |
|
|
Key *key; |
Key *key; |
u_char *blob; |
u_char *blob; |
u_int blen; |
u_int blen; |
int allowed = 0; |
int allowed = 0, have_forced = 0; |
|
|
debug3("%s entering", __func__); |
debug3("%s entering", __func__); |
|
|
|
|
|
|
allowed = buffer_get_int(&m); |
allowed = buffer_get_int(&m); |
|
|
|
/* fake forced command */ |
|
auth_clear_options(); |
|
have_forced = buffer_get_int(&m); |
|
forced_command = have_forced ? xstrdup("true") : NULL; |
|
|
if (allowed && rkey != NULL) { |
if (allowed && rkey != NULL) { |
blob = buffer_get_string(&m, &blen); |
blob = buffer_get_string(&m, &blen); |
if ((key = key_from_blob(blob, blen)) == NULL) |
if ((key = key_from_blob(blob, blen)) == NULL) |
|
|
xfree(p); |
xfree(p); |
} |
} |
buffer_free(&m); |
buffer_free(&m); |
return (success); |
return (success); |
} |
} |
#endif |
#endif |
|
|