|
Lines 189-194
int mm_answer_audit_command(int, Buffer
Link Here
|
| 189 |
int mm_answer_audit_end_command(int, Buffer *); |
189 |
int mm_answer_audit_end_command(int, Buffer *); |
| 190 |
int mm_answer_audit_unsupported_body(int, Buffer *); |
190 |
int mm_answer_audit_unsupported_body(int, Buffer *); |
| 191 |
int mm_answer_audit_kex_body(int, Buffer *); |
191 |
int mm_answer_audit_kex_body(int, Buffer *); |
|
|
192 |
int mm_answer_audit_session_key_free_body(int, Buffer *); |
| 192 |
#endif |
193 |
#endif |
| 193 |
|
194 |
|
| 194 |
static int monitor_read_log(struct monitor *); |
195 |
static int monitor_read_log(struct monitor *); |
|
Lines 241-246
struct mon_table mon_dispatch_proto20[]
Link Here
|
| 241 |
{MONITOR_REQ_AUDIT_EVENT, MON_PERMIT, mm_answer_audit_event}, |
242 |
{MONITOR_REQ_AUDIT_EVENT, MON_PERMIT, mm_answer_audit_event}, |
| 242 |
{MONITOR_REQ_AUDIT_UNSUPPORTED, MON_PERMIT, mm_answer_audit_unsupported_body}, |
243 |
{MONITOR_REQ_AUDIT_UNSUPPORTED, MON_PERMIT, mm_answer_audit_unsupported_body}, |
| 243 |
{MONITOR_REQ_AUDIT_KEX, MON_PERMIT, mm_answer_audit_kex_body}, |
244 |
{MONITOR_REQ_AUDIT_KEX, MON_PERMIT, mm_answer_audit_kex_body}, |
|
|
245 |
{MONITOR_REQ_AUDIT_SESSION_KEY_FREE, MON_PERMIT, mm_answer_audit_session_key_free_body}, |
| 244 |
#endif |
246 |
#endif |
| 245 |
#ifdef BSD_AUTH |
247 |
#ifdef BSD_AUTH |
| 246 |
{MONITOR_REQ_BSDAUTHQUERY, MON_ISAUTH, mm_answer_bsdauthquery}, |
248 |
{MONITOR_REQ_BSDAUTHQUERY, MON_ISAUTH, mm_answer_bsdauthquery}, |
|
Lines 280-285
struct mon_table mon_dispatch_postauth20
Link Here
|
| 280 |
{MONITOR_REQ_AUDIT_END_COMMAND, MON_PERMIT, mm_answer_audit_end_command}, |
282 |
{MONITOR_REQ_AUDIT_END_COMMAND, MON_PERMIT, mm_answer_audit_end_command}, |
| 281 |
{MONITOR_REQ_AUDIT_UNSUPPORTED, MON_PERMIT, mm_answer_audit_unsupported_body}, |
283 |
{MONITOR_REQ_AUDIT_UNSUPPORTED, MON_PERMIT, mm_answer_audit_unsupported_body}, |
| 282 |
{MONITOR_REQ_AUDIT_KEX, MON_PERMIT, mm_answer_audit_kex_body}, |
284 |
{MONITOR_REQ_AUDIT_KEX, MON_PERMIT, mm_answer_audit_kex_body}, |
|
|
285 |
{MONITOR_REQ_AUDIT_SESSION_KEY_FREE, MON_PERMIT, mm_answer_audit_session_key_free_body}, |
| 283 |
#endif |
286 |
#endif |
| 284 |
{0, 0, NULL} |
287 |
{0, 0, NULL} |
| 285 |
}; |
288 |
}; |
|
Lines 313-318
struct mon_table mon_dispatch_proto15[]
Link Here
|
| 313 |
{MONITOR_REQ_AUDIT_EVENT, MON_PERMIT, mm_answer_audit_event}, |
316 |
{MONITOR_REQ_AUDIT_EVENT, MON_PERMIT, mm_answer_audit_event}, |
| 314 |
{MONITOR_REQ_AUDIT_UNSUPPORTED, MON_PERMIT, mm_answer_audit_unsupported_body}, |
317 |
{MONITOR_REQ_AUDIT_UNSUPPORTED, MON_PERMIT, mm_answer_audit_unsupported_body}, |
| 315 |
{MONITOR_REQ_AUDIT_KEX, MON_PERMIT, mm_answer_audit_kex_body}, |
318 |
{MONITOR_REQ_AUDIT_KEX, MON_PERMIT, mm_answer_audit_kex_body}, |
|
|
319 |
{MONITOR_REQ_AUDIT_SESSION_KEY_FREE, MON_PERMIT, mm_answer_audit_session_key_free_body}, |
| 316 |
#endif |
320 |
#endif |
| 317 |
{0, 0, NULL} |
321 |
{0, 0, NULL} |
| 318 |
}; |
322 |
}; |
|
Lines 327-332
struct mon_table mon_dispatch_postauth15
Link Here
|
| 327 |
{MONITOR_REQ_AUDIT_END_COMMAND, MON_PERMIT, mm_answer_audit_end_command}, |
331 |
{MONITOR_REQ_AUDIT_END_COMMAND, MON_PERMIT, mm_answer_audit_end_command}, |
| 328 |
{MONITOR_REQ_AUDIT_UNSUPPORTED, MON_PERMIT, mm_answer_audit_unsupported_body}, |
332 |
{MONITOR_REQ_AUDIT_UNSUPPORTED, MON_PERMIT, mm_answer_audit_unsupported_body}, |
| 329 |
{MONITOR_REQ_AUDIT_KEX, MON_PERMIT, mm_answer_audit_kex_body}, |
333 |
{MONITOR_REQ_AUDIT_KEX, MON_PERMIT, mm_answer_audit_kex_body}, |
|
|
334 |
{MONITOR_REQ_AUDIT_SESSION_KEY_FREE, MON_PERMIT, mm_answer_audit_session_key_free_body}, |
| 330 |
#endif |
335 |
#endif |
| 331 |
{0, 0, NULL} |
336 |
{0, 0, NULL} |
| 332 |
}; |
337 |
}; |
|
Lines 433-442
monitor_child_preauth(Authctxt *_authctx
Link Here
|
| 433 |
#endif |
438 |
#endif |
| 434 |
} |
439 |
} |
| 435 |
|
440 |
|
| 436 |
/* Drain any buffered messages from the child */ |
|
|
| 437 |
while (pmonitor->m_log_recvfd != -1 && monitor_read_log(pmonitor) == 0) |
| 438 |
; |
| 439 |
|
| 440 |
if (!authctxt->valid) |
441 |
if (!authctxt->valid) |
| 441 |
fatal("%s: authenticated invalid user", __func__); |
442 |
fatal("%s: authenticated invalid user", __func__); |
| 442 |
if (strcmp(auth_method, "unknown") == 0) |
443 |
if (strcmp(auth_method, "unknown") == 0) |
|
Lines 1922-1932
mm_get_keystate(struct monitor *pmonitor
Link Here
|
| 1922 |
|
1923 |
|
| 1923 |
blob = buffer_get_string(&m, &bloblen); |
1924 |
blob = buffer_get_string(&m, &bloblen); |
| 1924 |
current_keys[MODE_OUT] = mm_newkeys_from_blob(blob, bloblen); |
1925 |
current_keys[MODE_OUT] = mm_newkeys_from_blob(blob, bloblen); |
|
|
1926 |
memset(blob, 0, bloblen); |
| 1925 |
xfree(blob); |
1927 |
xfree(blob); |
| 1926 |
|
1928 |
|
| 1927 |
debug3("%s: Waiting for second key", __func__); |
1929 |
debug3("%s: Waiting for second key", __func__); |
| 1928 |
blob = buffer_get_string(&m, &bloblen); |
1930 |
blob = buffer_get_string(&m, &bloblen); |
| 1929 |
current_keys[MODE_IN] = mm_newkeys_from_blob(blob, bloblen); |
1931 |
current_keys[MODE_IN] = mm_newkeys_from_blob(blob, bloblen); |
|
|
1932 |
memset(blob, 0, bloblen); |
| 1930 |
xfree(blob); |
1933 |
xfree(blob); |
| 1931 |
|
1934 |
|
| 1932 |
/* Now get sequence numbers for the packets */ |
1935 |
/* Now get sequence numbers for the packets */ |
|
Lines 1972-1977
mm_get_keystate(struct monitor *pmonitor
Link Here
|
| 1972 |
} |
1975 |
} |
| 1973 |
|
1976 |
|
| 1974 |
buffer_free(&m); |
1977 |
buffer_free(&m); |
|
|
1978 |
|
| 1979 |
#ifdef SSH_AUDIT_EVENTS |
| 1980 |
if (compat20) { |
| 1981 |
buffer_init(&m); |
| 1982 |
mm_request_receive_expect(pmonitor->m_sendfd, |
| 1983 |
MONITOR_REQ_AUDIT_SESSION_KEY_FREE, &m); |
| 1984 |
mm_answer_audit_session_key_free_body(pmonitor->m_sendfd, &m); |
| 1985 |
buffer_free(&m); |
| 1986 |
} |
| 1987 |
#endif |
| 1988 |
|
| 1989 |
/* Drain any buffered messages from the child */ |
| 1990 |
while (pmonitor->m_log_recvfd >= 0 && monitor_read_log(pmonitor) == 0) |
| 1991 |
; |
| 1992 |
|
| 1975 |
} |
1993 |
} |
| 1976 |
|
1994 |
|
| 1977 |
|
1995 |
|
|
Lines 2416-2419
mm_answer_audit_kex_body(int sock, Buffe
Link Here
|
| 2416 |
return 0; |
2434 |
return 0; |
| 2417 |
} |
2435 |
} |
| 2418 |
|
2436 |
|
|
|
2437 |
int |
| 2438 |
mm_answer_audit_session_key_free_body(int sock, Buffer *m) |
| 2439 |
{ |
| 2440 |
int ctos; |
| 2441 |
pid_t pid; |
| 2442 |
uid_t uid; |
| 2443 |
|
| 2444 |
ctos = buffer_get_int(m); |
| 2445 |
pid = buffer_get_int64(m); |
| 2446 |
uid = buffer_get_int64(m); |
| 2447 |
|
| 2448 |
audit_session_key_free_body(ctos, pid, uid); |
| 2449 |
|
| 2450 |
buffer_clear(m); |
| 2451 |
|
| 2452 |
mm_request_send(sock, MONITOR_ANS_AUDIT_SESSION_KEY_FREE, m); |
| 2453 |
return 0; |
| 2454 |
} |
| 2419 |
#endif /* SSH_AUDIT_EVENTS */ |
2455 |
#endif /* SSH_AUDIT_EVENTS */ |