diff --git a/tests/test_security_events.c b/tests/test_security_events.c index 0604f496226af7a6c90363b68510cae98f6719ea..4f2510f14216fe92bcaedaa7cd425a5f89a9a85b 100644 --- a/tests/test_security_events.c +++ b/tests/test_security_events.c @@ -51,6 +51,8 @@ static void evt_gen_successful_auth(void); static void evt_gen_unexpected_addr(void); static void evt_gen_chal_resp_failed(void); static void evt_gen_inval_password(void); +static void evt_gen_chal_sent(void); +static void evt_gen_inval_transport(void); typedef void (*evt_generator)(void); static const evt_generator evt_generators[AST_SECURITY_EVENT_NUM_TYPES] = { @@ -67,6 +69,8 @@ static const evt_generator evt_generators[AST_SECURITY_EVENT_NUM_TYPES] = { [AST_SECURITY_EVENT_UNEXPECTED_ADDR] = evt_gen_unexpected_addr, [AST_SECURITY_EVENT_CHAL_RESP_FAILED] = evt_gen_chal_resp_failed, [AST_SECURITY_EVENT_INVAL_PASSWORD] = evt_gen_inval_password, + [AST_SECURITY_EVENT_CHAL_SENT] = evt_gen_chal_sent, + [AST_SECURITY_EVENT_INVAL_TRANSPORT] = evt_gen_inval_transport, }; static void evt_gen_failed_acl(void) @@ -548,6 +552,9 @@ static void evt_gen_inval_password(void) .addr = &addr_remote, .transport = AST_SECURITY_EVENT_TRANSPORT_TCP, }, + .challenge = "GoOdChAlLeNgE", + .received_challenge = "BaDcHaLlEnGe", + .received_hash = "3ad9023adf309", }; char localaddr[53]; @@ -562,6 +569,80 @@ static void evt_gen_inval_password(void) ast_security_event_report(AST_SEC_EVT(&inval_password)); } +static void evt_gen_chal_sent(void) +{ + struct ast_sockaddr addr_local = { {0,} }; + struct ast_sockaddr addr_remote = { {0,} }; + + struct timeval session_tv = ast_tvnow(); + struct ast_security_event_chal_sent chal_sent = { + .common.event_type = AST_SECURITY_EVENT_CHAL_SENT, + .common.version = AST_SECURITY_EVENT_CHAL_SENT_VERSION, + .common.service = "TEST", + .common.module = AST_MODULE, + .common.account_id = "AccountIDGoesHere", + .common.session_id = "SessionIDGoesHere", + .common.session_tv = &session_tv, + .common.local_addr = { + .addr = &addr_local, + .transport = AST_SECURITY_EVENT_TRANSPORT_TCP, + }, + .common.remote_addr = { + .addr = &addr_remote, + .transport = AST_SECURITY_EVENT_TRANSPORT_TCP, + }, + .challenge = "IcHaLlEnGeYoU", + }; + + char localaddr[53]; + char remoteaddr[53]; + + ast_copy_string(localaddr, "10.200.10.30:5392", sizeof(localaddr)); + ast_copy_string(remoteaddr, "10.200.10.31:1443", sizeof(remoteaddr)); + + ast_sockaddr_parse(&addr_local, localaddr, 0); + ast_sockaddr_parse(&addr_remote, remoteaddr, 0); + + ast_security_event_report(AST_SEC_EVT(&chal_sent)); +} + +static void evt_gen_inval_transport(void) +{ + struct ast_sockaddr addr_local = { {0,} }; + struct ast_sockaddr addr_remote = { {0,} }; + + struct timeval session_tv = ast_tvnow(); + struct ast_security_event_inval_transport inval_transport = { + .common.event_type = AST_SECURITY_EVENT_INVAL_TRANSPORT, + .common.version = AST_SECURITY_EVENT_INVAL_TRANSPORT_VERSION, + .common.service = "TEST", + .common.module = AST_MODULE, + .common.account_id = "AccountIDGoesHere", + .common.session_id = "SessionIDGoesHere", + .common.session_tv = &session_tv, + .common.local_addr = { + .addr = &addr_local, + .transport = AST_SECURITY_EVENT_TRANSPORT_TCP, + }, + .common.remote_addr = { + .addr = &addr_remote, + .transport = AST_SECURITY_EVENT_TRANSPORT_TCP, + }, + .transport = "UDP", + }; + + char localaddr[53]; + char remoteaddr[53]; + + ast_copy_string(localaddr, "10.200.103.45:8223", sizeof(localaddr)); + ast_copy_string(remoteaddr, "10.200.103.44:1039", sizeof(remoteaddr)); + + ast_sockaddr_parse(&addr_local, localaddr, 0); + ast_sockaddr_parse(&addr_remote, remoteaddr, 0); + + ast_security_event_report(AST_SEC_EVT(&inval_transport)); +} + static void gen_events(struct ast_cli_args *a) { unsigned int i;