From: Philippe Antoine Date: Sun, 31 Jul 2022 13:50:26 +0000 (+0200) Subject: ike: rustfmt X-Git-Tag: suricata-7.0.0-beta1~302 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d0171d7418a5e7bd1c52a08190d19a88595e9700;p=thirdparty%2Fsuricata.git ike: rustfmt --- diff --git a/rust/src/ike/detect.rs b/rust/src/ike/detect.rs index 719a1730eb..db5f1b7711 100644 --- a/rust/src/ike/detect.rs +++ b/rust/src/ike/detect.rs @@ -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; } } } diff --git a/rust/src/ike/ike.rs b/rust/src/ike/ike.rs index c359138477..2d975c6dab 100644 --- a/rust/src/ike/ike.rs +++ b/rust/src/ike/ike.rs @@ -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::), - 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::), + 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, }; diff --git a/rust/src/ike/logger.rs b/rust/src/ike/logger.rs index a0e8cd6a03..b326cdec07 100644 --- a/rust/src/ike/logger.rs +++ b/rust/src/ike/logger.rs @@ -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; diff --git a/rust/src/ike/parser.rs b/rust/src/ike/parser.rs index b25237a520..732146ea35 100644 --- a/rust/src/ike/parser.rs +++ b/rust/src/ike/parser.rs @@ -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> { 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> { 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> 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) }