Squashed commit of the following:
commit
034c71cccbba39b7d746acc2858241d9cc7ed51a
Author: Viktoriia Kovalenko <vkovalen@cisco.com>
Date: Fri May 29 15:20:08 2020 +0300
appid: set appid_tlshost_bit when we set tls_cname
{
ssl_matchers.scan_cname((const uint8_t*)common_name, strlen(common_name), client_id,
payload_id);
- asd->tsession->set_tls_cname(common_name, strlen(common_name));
+ asd->tsession->set_tls_cname(common_name, strlen(common_name), change_bits);
asd->scan_flags |= SCAN_SSL_CERTIFICATE_FLAG;
asd->scan_flags |= SCAN_DO_NOT_OVERRIDE_COMMON_NAME_FLAG;
}
change_bits.set(APPID_TLSHOST_BIT);
}
- void set_tls_cname(const char* new_tls_cname, uint32_t len)
+ void set_tls_cname(const char* new_tls_cname, uint32_t len, AppidChangeBits& change_bits)
{
if (tls_cname)
snort_free(tls_cname);
}
tls_cname = len? snort::snort_strndup(new_tls_cname,len) :
const_cast<char*>(new_tls_cname);
+ if (tls_host == nullptr)
+ change_bits.set(APPID_TLSHOST_BIT);
}
void set_tls_org_unit(const char* new_tls_org_unit, uint32_t len)
char* AppIdSessionApi::get_tls_host()
{
if (asd->tsession)
- return asd->tsession->get_tls_host();
+ if (asd->tsession->get_tls_host())
+ return asd->tsession->get_tls_host();
+ else
+ return asd->tsession->get_tls_cname();
return nullptr;
}
/* TLS Common Name */
if (ss->common_name)
{
- args.asd.tsession->set_tls_cname(ss->common_name, 0);
+ args.asd.tsession->set_tls_cname(ss->common_name, 0, args.change_bits);
args.asd.scan_flags |= SCAN_SSL_CERTIFICATE_FLAG;
}
/* TLS Org Unit */
AppidChangeBits change_bits;
mock_session->tsession->set_tls_host("www.cisco.com", 13, change_bits);
- mock_session->tsession->set_tls_cname("www.cisco.com", 13);
+ mock_session->tsession->set_tls_cname("www.cisco.com", 13, change_bits);
mock_session->tsession->set_tls_org_unit("Cisco", 5);
STRCMP_EQUAL(mock_session->tsession->get_tls_host(), "www.cisco.com");
STRCMP_EQUAL(mock_session->tsession->get_tls_cname(), "www.cisco.com");
STRCMP_EQUAL(mock_session->tsession->get_tls_host(), nullptr);
STRCMP_EQUAL(mock_session->tsession->get_tls_cname(), APPID_UT_TLS_HOST);
STRCMP_EQUAL(mock_session->tsession->get_tls_org_unit(), "Google");
- STRCMP_EQUAL("Published change_bits == 000000000110", test_log);
+ STRCMP_EQUAL("Published change_bits == 000001000110", test_log);
mock().checkExpectations();
}
asd.tsession->get_tls_cname() == nullptr and
(field = attribute_data.tls_cname()) != nullptr)
{
- asd.tsession->set_tls_cname(field->c_str(), field->size());
+ asd.tsession->set_tls_cname(field->c_str(), field->size(), change_bits);
if (reinspect_ssl_appid)
asd.scan_flags |= SCAN_SSL_CERTIFICATE_FLAG;
}