]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
ike: rustfmt
authorPhilippe Antoine <pantoine@oisf.net>
Sun, 31 Jul 2022 13:50:26 +0000 (15:50 +0200)
committerVictor Julien <vjulien@oisf.net>
Tue, 9 Aug 2022 08:52:10 +0000 (10:52 +0200)
rust/src/ike/detect.rs
rust/src/ike/ike.rs
rust/src/ike/logger.rs
rust/src/ike/parser.rs

index 719a1730eb35d093d00b947f7c8d589fde3693c6..db5f1b7711e73b40dcbcb5e173c600a4c526441f 100644 (file)
@@ -142,11 +142,9 @@ pub extern "C" fn rs_ike_state_get_sa_attribute(
     debug_validate_bug_on!(value == std::ptr::null_mut());
     let mut ret_val = 0;
     let mut ret_code = 0;
-    let sa_type_s: Result<_,_>;
+    let sa_type_s: Result<_, _>;
 
-    unsafe {
-        sa_type_s = CStr::from_ptr(sa_type).to_str()
-    }
+    unsafe { sa_type_s = CStr::from_ptr(sa_type).to_str() }
     SCLogInfo!("{:#?}", sa_type_s);
 
     if let Ok(sa) = sa_type_s {
@@ -159,7 +157,7 @@ pub extern "C" fn rs_ike_state_get_sa_attribute(
                             if let Some(numeric_value) = attr.numeric_value {
                                 ret_val = numeric_value;
                                 ret_code = 1;
-                                break
+                                break;
                             }
                         }
                     }
index c3591384774ce6aac9bafff89df1ed7d3b28b9f6..2d975c6dab6614a4d6d1c3287ff6dcffdcbb6901 100644 (file)
@@ -320,8 +320,7 @@ pub unsafe extern "C" fn rs_ike_state_tx_free(state: *mut std::os::raw::c_void,
 #[no_mangle]
 pub unsafe extern "C" fn rs_ike_parse_request(
     _flow: *const Flow, state: *mut std::os::raw::c_void, _pstate: *mut std::os::raw::c_void,
-    stream_slice: StreamSlice,
-    _data: *const std::os::raw::c_void,
+    stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
 ) -> AppLayerResult {
     let state = cast_pointer!(state, IKEState);
     return state.handle_input(stream_slice.as_slice(), Direction::ToServer);
@@ -330,8 +329,7 @@ pub unsafe extern "C" fn rs_ike_parse_request(
 #[no_mangle]
 pub unsafe extern "C" fn rs_ike_parse_response(
     _flow: *const Flow, state: *mut std::os::raw::c_void, _pstate: *mut std::os::raw::c_void,
-    stream_slice: StreamSlice,
-    _data: *const std::os::raw::c_void,
+    stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
 ) -> AppLayerResult {
     let state = cast_pointer!(state, IKEState);
     return state.handle_input(stream_slice.as_slice(), Direction::ToClient);
@@ -387,7 +385,7 @@ pub unsafe extern "C" fn rs_ike_tx_set_logged(
     tx.logged.set(logged);
 }
 
-static mut ALPROTO_IKE : AppProto = ALPROTO_UNKNOWN;
+static mut ALPROTO_IKE: AppProto = ALPROTO_UNKNOWN;
 
 // Parser name as a C style string.
 const PARSER_NAME: &'static [u8] = b"ike\0";
@@ -399,33 +397,33 @@ export_tx_data_get!(rs_ike_get_tx_data, IKETransaction);
 pub unsafe extern "C" fn rs_ike_register_parser() {
     let default_port = CString::new("500").unwrap();
     let parser = RustParser {
-        name               : PARSER_NAME.as_ptr() as *const std::os::raw::c_char,
-        default_port       : default_port.as_ptr(),
-        ipproto            : core::IPPROTO_UDP,
-        probe_ts           : Some(rs_ike_probing_parser),
-        probe_tc           : Some(rs_ike_probing_parser),
-        min_depth          : 0,
-        max_depth          : 16,
-        state_new          : rs_ike_state_new,
-        state_free         : rs_ike_state_free,
-        tx_free            : rs_ike_state_tx_free,
-        parse_ts           : rs_ike_parse_request,
-        parse_tc           : rs_ike_parse_response,
-        get_tx_count       : rs_ike_state_get_tx_count,
-        get_tx             : rs_ike_state_get_tx,
-        tx_comp_st_ts      : 1,
-        tx_comp_st_tc      : 1,
-        tx_get_progress    : rs_ike_tx_get_alstate_progress,
-        get_eventinfo      : Some(IkeEvent::get_event_info),
-        get_eventinfo_byid : Some(IkeEvent::get_event_info_by_id),
-        localstorage_new   : None,
-        localstorage_free  : None,
-        get_files          : None,
-        get_tx_iterator    : Some(applayer::state_get_tx_iterator::<IKEState, IKETransaction>),
-        get_tx_data        : rs_ike_get_tx_data,
-        apply_tx_config    : None,
-        flags              : APP_LAYER_PARSER_OPT_UNIDIR_TXS,
-        truncate           : None,
+        name: PARSER_NAME.as_ptr() as *const std::os::raw::c_char,
+        default_port: default_port.as_ptr(),
+        ipproto: core::IPPROTO_UDP,
+        probe_ts: Some(rs_ike_probing_parser),
+        probe_tc: Some(rs_ike_probing_parser),
+        min_depth: 0,
+        max_depth: 16,
+        state_new: rs_ike_state_new,
+        state_free: rs_ike_state_free,
+        tx_free: rs_ike_state_tx_free,
+        parse_ts: rs_ike_parse_request,
+        parse_tc: rs_ike_parse_response,
+        get_tx_count: rs_ike_state_get_tx_count,
+        get_tx: rs_ike_state_get_tx,
+        tx_comp_st_ts: 1,
+        tx_comp_st_tc: 1,
+        tx_get_progress: rs_ike_tx_get_alstate_progress,
+        get_eventinfo: Some(IkeEvent::get_event_info),
+        get_eventinfo_byid: Some(IkeEvent::get_event_info_by_id),
+        localstorage_new: None,
+        localstorage_free: None,
+        get_files: None,
+        get_tx_iterator: Some(applayer::state_get_tx_iterator::<IKEState, IKETransaction>),
+        get_tx_data: rs_ike_get_tx_data,
+        apply_tx_config: None,
+        flags: APP_LAYER_PARSER_OPT_UNIDIR_TXS,
+        truncate: None,
         get_frame_id_by_name: None,
         get_frame_name_by_id: None,
     };
index a0e8cd6a03b425aa33547a3cac12db68bf0e6644..b326cdec0720c948673ee3e08d986db894bee273 100644 (file)
@@ -19,9 +19,9 @@ use super::ike::{IKEState, IKETransaction};
 use super::ipsec_parser::IKEV2_FLAG_INITIATOR;
 use crate::ike::parser::{ExchangeType, IsakmpPayloadType, SaAttribute};
 use crate::jsonbuilder::{JsonBuilder, JsonError};
+use num_traits::FromPrimitive;
 use std;
 use std::convert::TryFrom;
-use num_traits::FromPrimitive;
 
 const LOG_EXTENDED: u32 = 0x01;
 
index b25237a52027ca49ad15ecd60bfc195630f9a595..732146ea35a141470083d12c8da376fe0c933e2e 100644 (file)
@@ -261,18 +261,17 @@ pub fn parse_isakmp_header(i: &[u8]) -> IResult<&[u8], IsakmpHeader> {
     let (i, flags) = be_u8(i)?;
     let (i, msg_id) = be_u32(i)?;
     let (i, length) = be_u32(i)?;
-    let hdr =
-        IsakmpHeader {
-            init_spi,
-            resp_spi,
-            next_payload,
-            maj_ver: vers.0,
-            min_ver: vers.1,
-            exch_type,
-            flags,
-            msg_id,
-            length,
-        };
+    let hdr = IsakmpHeader {
+        init_spi,
+        resp_spi,
+        next_payload,
+        maj_ver: vers.0,
+        min_ver: vers.1,
+        exch_type,
+        flags,
+        msg_id,
+        length,
+    };
     Ok((i, hdr))
 }
 
@@ -280,15 +279,17 @@ pub fn parse_security_association(i: &[u8]) -> IResult<&[u8], SecurityAssociatio
     let start_i = i;
     let (i, domain_of_interpretation) = be_u32(i)?;
     let (i, situation) = cond(domain_of_interpretation == 1, take(4_usize))(i)?;
-    let (i, data) = cond(
-        domain_of_interpretation == 1 && start_i.len() >= 8,
-        |b| take(start_i.len() - 8)(b)
-        )(i)?;
-    Ok((i, SecurityAssociationPayload {
-        domain_of_interpretation,
-        situation,
-        data
-    }))
+    let (i, data) = cond(domain_of_interpretation == 1 && start_i.len() >= 8, |b| {
+        take(start_i.len() - 8)(b)
+    })(i)?;
+    Ok((
+        i,
+        SecurityAssociationPayload {
+            domain_of_interpretation,
+            situation,
+            data,
+        },
+    ))
 }
 
 pub fn parse_key_exchange(i: &[u8], length: u16) -> IResult<&[u8], KeyExchangePayload> {
@@ -303,10 +304,9 @@ pub fn parse_proposal(i: &[u8]) -> IResult<&[u8], ProposalPayload> {
     let (i, spi_size) = be_u8(i)?;
     let (i, number_transforms) = be_u8(i)?;
     let (i, spi) = take(spi_size as usize)(i)?;
-    let (i, payload_data) = cond(
-        (start_i.len() - 4) >= spi_size.into(),
-        |b| take((start_i.len() - 4) - spi_size as usize)(b)
-        )(i)?;
+    let (i, payload_data) = cond((start_i.len() - 4) >= spi_size.into(), |b| {
+        take((start_i.len() - 4) - spi_size as usize)(b)
+    })(i)?;
     let payload = ProposalPayload {
         proposal_number,
         proposal_type,
@@ -323,11 +323,14 @@ pub fn parse_transform(i: &[u8], length: u16) -> IResult<&[u8], TransformPayload
     let (i, transform_type) = be_u8(i)?;
     let (i, _) = be_u16(i)?;
     let (i, payload_data) = cond(length >= 4, |b| take(length - 4)(b))(i)?;
-    Ok((i, TransformPayload {
-        transform_number,
-        transform_type,
-        sa_attributes: payload_data.unwrap_or_default(),
-    }))
+    Ok((
+        i,
+        TransformPayload {
+            transform_number,
+            transform_type,
+            sa_attributes: payload_data.unwrap_or_default(),
+        },
+    ))
 }
 
 pub fn parse_vendor_id(i: &[u8], length: u16) -> IResult<&[u8], VendorPayload> {
@@ -438,17 +441,18 @@ fn get_group_description(v: u16) -> AttributeValue {
 pub fn parse_sa_attribute(i: &[u8]) -> IResult<&[u8], Vec<SaAttribute>> {
     fn parse_attribute(i: &[u8]) -> IResult<&[u8], SaAttribute> {
         let (i, b) = be_u16(i)?;
-        let format = (
-            (b >> 15) as u8,
-            b & 0x7f_ff
-            );
+        let format = ((b >> 15) as u8, b & 0x7f_ff);
         let (i, attribute_length_or_value) = be_u16(i)?; // depends on format bit) = 1 -> value | 0 -> number of following bytes
-        let (i, numeric_variable_value) = cond(format.0 == 0 && attribute_length_or_value == 4, be_u32) (i)?; // interpret as number
-        let (i, variable_attribute_value) = cond(format.0 == 0 && attribute_length_or_value != 4, take(attribute_length_or_value))(i)?;
+        let (i, numeric_variable_value) =
+            cond(format.0 == 0 && attribute_length_or_value == 4, be_u32)(i)?; // interpret as number
+        let (i, variable_attribute_value) = cond(
+            format.0 == 0 && attribute_length_or_value != 4,
+            take(attribute_length_or_value),
+        )(i)?;
         let attr = SaAttribute {
             attribute_format: format.0,
             attribute_type: get_attribute_type(format.1),
-            attribute_value : match format.1 {
+            attribute_value: match format.1 {
                 1 => get_encryption_algorithm(attribute_length_or_value),
                 2 => get_hash_algorithm(attribute_length_or_value),
                 3 => get_authentication_method(attribute_length_or_value),
@@ -456,23 +460,20 @@ pub fn parse_sa_attribute(i: &[u8]) -> IResult<&[u8], Vec<SaAttribute>> {
                 11 => match attribute_length_or_value {
                     1 => AttributeValue::LifeTypeSeconds,
                     2 => AttributeValue::LifeTypeKilobytes,
-                    _ => AttributeValue::Unknown
-                }
-                _ => AttributeValue::Unknown
+                    _ => AttributeValue::Unknown,
+                },
+                _ => AttributeValue::Unknown,
             },
             numeric_value: match format.0 {
                 1 => Some(attribute_length_or_value as u32),
-                0 => {
-                    numeric_variable_value
-                },
+                0 => numeric_variable_value,
                 _ => None,
             },
             hex_value: match format.0 {
-                0 => {
-                    variable_attribute_value.map(|_variable_attribute_value| to_hex(_variable_attribute_value))
-                }
+                0 => variable_attribute_value
+                    .map(|_variable_attribute_value| to_hex(_variable_attribute_value)),
                 _ => None,
-            }
+            },
         };
         Ok((i, attr))
     }
@@ -489,14 +490,17 @@ pub fn parse_ikev1_payload_list(i: &[u8]) -> IResult<&[u8], Vec<IsakmpPayload>>
         let (i, reserved) = be_u8(i)?;
         let (i, payload_length) = be_u16(i)?;
         let (i, payload_data) = cond(payload_length >= 4, |b| take(payload_length - 4)(b))(i)?;
-        Ok((i, IsakmpPayload {
-            payload_header: IsakmpPayloadHeader {
-                next_payload,
-                reserved,
-                payload_length
+        Ok((
+            i,
+            IsakmpPayload {
+                payload_header: IsakmpPayloadHeader {
+                    next_payload,
+                    reserved,
+                    payload_length,
+                },
+                data: payload_data.unwrap_or_default(),
             },
-            data: payload_data.unwrap_or_default(),
-        }))
+        ))
     }
     many0(complete(parse_payload))(i)
 }