From 46ebd7128fd38f3eac5289ba281f3f25bad1d899 Mon Sep 17 00:00:00 2001 From: Luca Deri Date: Sat, 7 Aug 2021 17:10:18 +0200 Subject: Added ability to report whether a protocol is encrypted Added new API calls - u_int8_t ndpi_is_valid_protoId(u_int16_t protoId); Cleaned up code and organized in a function. - u_int8_t ndpi_is_encrypted_proto(struct ndpi_detection_module_struct *ndpi_str, ndpi_protocol proto); Check whether a protocol is encrypted or not based on master and app protocols --- src/lib/ndpi_utils.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/lib/ndpi_utils.c') diff --git a/src/lib/ndpi_utils.c b/src/lib/ndpi_utils.c index 48788c15d..0008835f4 100644 --- a/src/lib/ndpi_utils.c +++ b/src/lib/ndpi_utils.c @@ -2226,3 +2226,21 @@ u_int8_t is_a_common_alpn(struct ndpi_detection_module_struct *ndpi_str, return(0); } + +/* ******************************************* */ + +u_int8_t ndpi_is_valid_protoId(u_int16_t protoId) { + return((protoId >= NDPI_MAX_SUPPORTED_PROTOCOLS + NDPI_MAX_NUM_CUSTOM_PROTOCOLS) ? 0 : 1); +} + +/* ******************************************* */ + +u_int8_t ndpi_is_encrypted_proto(struct ndpi_detection_module_struct *ndpi_str, + ndpi_protocol proto) { + + if(ndpi_is_valid_protoId(proto.master_protocol) && ndpi_is_valid_protoId(proto.app_protocol)) { + return((ndpi_str->proto_defaults[proto.master_protocol].isClearTextProto + && ndpi_str->proto_defaults[proto.app_protocol].isClearTextProto) ? 0 : 1); + } else + return(0); +} -- cgit v1.2.3