|
Lines 156-165
Link Here
|
| 156 |
int mm_answer_pam_query(int, Buffer *); |
156 |
int mm_answer_pam_query(int, Buffer *); |
| 157 |
int mm_answer_pam_respond(int, Buffer *); |
157 |
int mm_answer_pam_respond(int, Buffer *); |
| 158 |
int mm_answer_pam_free_ctx(int, Buffer *); |
158 |
int mm_answer_pam_free_ctx(int, Buffer *); |
| 159 |
#endif |
159 |
#endif |
| 160 |
|
160 |
|
|
|
161 |
#ifdef USE_VTOKEN |
| 162 |
int mm_answer_vtoken_query(int, Buffer *); |
| 163 |
int mm_answer_vtoken_respond(int, Buffer *); |
| 164 |
#endif |
| 165 |
|
| 161 |
#ifdef GSSAPI |
166 |
#ifdef GSSAPI |
| 162 |
int mm_answer_gss_setup_ctx(int, Buffer *); |
167 |
int mm_answer_gss_setup_ctx(int, Buffer *); |
| 163 |
int mm_answer_gss_accept_ctx(int, Buffer *); |
168 |
int mm_answer_gss_accept_ctx(int, Buffer *); |
| 164 |
int mm_answer_gss_userok(int, Buffer *); |
169 |
int mm_answer_gss_userok(int, Buffer *); |
| 165 |
int mm_answer_gss_checkmic(int, Buffer *); |
170 |
int mm_answer_gss_checkmic(int, Buffer *); |
|
Lines 223-232
Link Here
|
| 223 |
#endif |
228 |
#endif |
| 224 |
#ifdef SKEY |
229 |
#ifdef SKEY |
| 225 |
{MONITOR_REQ_SKEYQUERY, MON_ISAUTH, mm_answer_skeyquery}, |
230 |
{MONITOR_REQ_SKEYQUERY, MON_ISAUTH, mm_answer_skeyquery}, |
| 226 |
{MONITOR_REQ_SKEYRESPOND, MON_AUTH, mm_answer_skeyrespond}, |
231 |
{MONITOR_REQ_SKEYRESPOND, MON_AUTH, mm_answer_skeyrespond}, |
| 227 |
#endif |
232 |
#endif |
|
|
233 |
#ifdef USE_VTOKEN |
| 234 |
{MONITOR_REQ_VTOKENQUERY, MON_ISAUTH, mm_answer_vtoken_query}, |
| 235 |
{MONITOR_REQ_VTOKENRESPOND, MON_AUTH, mm_answer_vtoken_respond}, |
| 236 |
#endif |
| 228 |
{MONITOR_REQ_KEYALLOWED, MON_ISAUTH, mm_answer_keyallowed}, |
237 |
{MONITOR_REQ_KEYALLOWED, MON_ISAUTH, mm_answer_keyallowed}, |
| 229 |
{MONITOR_REQ_KEYVERIFY, MON_AUTH, mm_answer_keyverify}, |
238 |
{MONITOR_REQ_KEYVERIFY, MON_AUTH, mm_answer_keyverify}, |
| 230 |
#ifdef GSSAPI |
239 |
#ifdef GSSAPI |
| 231 |
{MONITOR_REQ_GSSSETUP, MON_ISAUTH, mm_answer_gss_setup_ctx}, |
240 |
{MONITOR_REQ_GSSSETUP, MON_ISAUTH, mm_answer_gss_setup_ctx}, |
| 232 |
{MONITOR_REQ_GSSSTEP, MON_ISAUTH, mm_answer_gss_accept_ctx}, |
241 |
{MONITOR_REQ_GSSSTEP, MON_ISAUTH, mm_answer_gss_accept_ctx}, |
|
Lines 264-273
Link Here
|
| 264 |
#endif |
273 |
#endif |
| 265 |
#ifdef SKEY |
274 |
#ifdef SKEY |
| 266 |
{MONITOR_REQ_SKEYQUERY, MON_ISAUTH, mm_answer_skeyquery}, |
275 |
{MONITOR_REQ_SKEYQUERY, MON_ISAUTH, mm_answer_skeyquery}, |
| 267 |
{MONITOR_REQ_SKEYRESPOND, MON_AUTH, mm_answer_skeyrespond}, |
276 |
{MONITOR_REQ_SKEYRESPOND, MON_AUTH, mm_answer_skeyrespond}, |
| 268 |
#endif |
277 |
#endif |
|
|
278 |
#ifdef USE_VTOKEN |
| 279 |
{MONITOR_REQ_VTOKENQUERY, MON_ISAUTH, mm_answer_vtoken_query}, |
| 280 |
{MONITOR_REQ_VTOKENRESPOND, MON_AUTH, mm_answer_vtoken_respond}, |
| 281 |
#endif |
| 269 |
#ifdef USE_PAM |
282 |
#ifdef USE_PAM |
| 270 |
{MONITOR_REQ_PAM_START, MON_ONCE, mm_answer_pam_start}, |
283 |
{MONITOR_REQ_PAM_START, MON_ONCE, mm_answer_pam_start}, |
| 271 |
{MONITOR_REQ_PAM_ACCOUNT, 0, mm_answer_pam_account}, |
284 |
{MONITOR_REQ_PAM_ACCOUNT, 0, mm_answer_pam_account}, |
| 272 |
{MONITOR_REQ_PAM_INIT_CTX, MON_ISAUTH, mm_answer_pam_init_ctx}, |
285 |
{MONITOR_REQ_PAM_INIT_CTX, MON_ISAUTH, mm_answer_pam_init_ctx}, |
| 273 |
{MONITOR_REQ_PAM_QUERY, MON_ISAUTH, mm_answer_pam_query}, |
286 |
{MONITOR_REQ_PAM_QUERY, MON_ISAUTH, mm_answer_pam_query}, |
|
Lines 810-842
Link Here
|
| 810 |
debug3("%s: sending challenge success: %u", __func__, success); |
823 |
debug3("%s: sending challenge success: %u", __func__, success); |
| 811 |
mm_request_send(sock, MONITOR_ANS_SKEYQUERY, m); |
824 |
mm_request_send(sock, MONITOR_ANS_SKEYQUERY, m); |
| 812 |
|
825 |
|
| 813 |
return (0); |
826 |
return (0); |
| 814 |
} |
827 |
} |
|
|
828 |
#endif |
| 815 |
|
829 |
|
|
|
830 |
#ifdef USE_VTOKEN |
| 816 |
int |
831 |
int |
| 817 |
mm_answer_skeyrespond(int sock, Buffer *m) |
832 |
mm_answer_vtoken_query(int sock, Buffer *m) |
|
|
833 |
{ |
| 834 |
char challenge[1024]; |
| 835 |
u_int success=1; |
| 836 |
|
| 837 |
buffer_clear(m); |
| 838 |
buffer_put_int(m, success); |
| 839 |
if (success) |
| 840 |
buffer_put_cstring(m, challenge); |
| 841 |
|
| 842 |
debug3("%s: sending challenge success: %u", __func__, success); |
| 843 |
|
| 844 |
mm_request_send(sock, MONITOR_ANS_VTOKENQUERY, m); |
| 845 |
|
| 846 |
return (0); |
| 847 |
} |
| 848 |
|
| 849 |
int |
| 850 |
mm_answer_vtoken_respond(int sock, Buffer *m) |
| 818 |
{ |
851 |
{ |
| 819 |
char *response; |
852 |
char *response; |
| 820 |
int authok; |
853 |
int authok; |
| 821 |
|
854 |
|
| 822 |
response = buffer_get_string(m, NULL); |
855 |
response = buffer_get_string(m, NULL); |
| 823 |
|
856 |
|
| 824 |
authok = (options.challenge_response_authentication && |
|
|
| 825 |
authctxt->valid && |
| 826 |
skey_haskey(authctxt->pw->pw_name) == 0 && |
| 827 |
skey_passcheck(authctxt->pw->pw_name, response) != -1); |
| 828 |
|
| 829 |
xfree(response); |
857 |
xfree(response); |
| 830 |
|
858 |
|
| 831 |
buffer_clear(m); |
859 |
buffer_clear(m); |
| 832 |
buffer_put_int(m, authok); |
860 |
buffer_put_int(m, authok); |
| 833 |
|
861 |
|
| 834 |
debug3("%s: sending authenticated: %d", __func__, authok); |
862 |
debug3("%s: sending authenticated: %d", __func__, authok); |
| 835 |
mm_request_send(sock, MONITOR_ANS_SKEYRESPOND, m); |
863 |
mm_request_send(sock, MONITOR_ANS_VTOKENRESPOND, m); |
| 836 |
|
864 |
|
| 837 |
auth_method = "skey"; |
865 |
auth_method = "vtoken"; |
| 838 |
|
866 |
|
| 839 |
return (authok != 0); |
867 |
return (authok != 0); |
| 840 |
} |
868 |
} |
| 841 |
#endif |
869 |
#endif |
| 842 |
|
870 |
|