From: Jason Ish Date: Fri, 2 May 2025 17:14:40 +0000 (-0600) Subject: rust/krb: remove rs_ prefix; visibility fixes X-Git-Tag: suricata-8.0.0-rc1~372 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8ba0a5c8ecc4c817c515581793766915ebc15498;p=thirdparty%2Fsuricata.git rust/krb: remove rs_ prefix; visibility fixes - remove pub/no_mangle where not needed - replace rs_ naming with SC naming --- diff --git a/rust/src/krb/detect.rs b/rust/src/krb/detect.rs index 72287aeb43..c9528944d1 100644 --- a/rust/src/krb/detect.rs +++ b/rust/src/krb/detect.rs @@ -33,14 +33,14 @@ use std::ffi::CStr; use std::os::raw::c_void; #[no_mangle] -pub unsafe extern "C" fn rs_krb5_tx_get_msgtype(tx: &KRB5Transaction, ptr: *mut u32) { +pub unsafe extern "C" fn SCKrb5TxGetMsgType(tx: &KRB5Transaction, ptr: *mut u32) { *ptr = tx.msg_type.0; } /// Get error code, if present in transaction /// Return 0 if error code was filled, else 1 #[no_mangle] -pub unsafe extern "C" fn rs_krb5_tx_get_errcode(tx: &KRB5Transaction, ptr: *mut i32) -> u32 { +pub unsafe extern "C" fn SCKrb5TxGetErrorCode(tx: &KRB5Transaction, ptr: *mut i32) -> u32 { match tx.error_code { Some(ref e) => { *ptr = e.0; @@ -51,7 +51,7 @@ pub unsafe extern "C" fn rs_krb5_tx_get_errcode(tx: &KRB5Transaction, ptr: *mut } #[no_mangle] -pub unsafe extern "C" fn rs_krb5_tx_get_cname( +pub unsafe extern "C" fn SCKrb5TxGetCname( _de: *mut DetectEngineThreadCtx, tx: *const c_void, _flags: u8, i: u32, buffer: *mut *const u8, buffer_len: *mut u32, ) -> bool { @@ -68,7 +68,7 @@ pub unsafe extern "C" fn rs_krb5_tx_get_cname( } #[no_mangle] -pub unsafe extern "C" fn rs_krb5_tx_get_sname( +pub unsafe extern "C" fn SCKrb5TxGetSname( _de: *mut DetectEngineThreadCtx, tx: *const c_void, _flags: u8, i: u32, buffer: *mut *const u8, buffer_len: *mut u32, ) -> bool { @@ -218,7 +218,7 @@ pub fn detect_parse_encryption(i: &str) -> IResult<&str, DetectKrb5TicketEncrypt } #[no_mangle] -pub unsafe extern "C" fn rs_krb5_detect_encryption_parse( +pub unsafe extern "C" fn SCKrb5DetectEncryptionParse( ustr: *const std::os::raw::c_char, ) -> *mut DetectKrb5TicketEncryptionData { let ft_name: &CStr = CStr::from_ptr(ustr); //unsafe @@ -232,7 +232,7 @@ pub unsafe extern "C" fn rs_krb5_detect_encryption_parse( } #[no_mangle] -pub unsafe extern "C" fn rs_krb5_detect_encryption_match( +pub unsafe extern "C" fn SCKrb5DetectEncryptionMatch( tx: &KRB5Transaction, ctx: &DetectKrb5TicketEncryptionData, ) -> std::os::raw::c_int { if let Some(x) = tx.ticket_etype { @@ -266,7 +266,7 @@ pub unsafe extern "C" fn rs_krb5_detect_encryption_match( } #[no_mangle] -pub unsafe extern "C" fn rs_krb5_detect_encryption_free(ctx: &mut DetectKrb5TicketEncryptionData) { +pub unsafe extern "C" fn SCKrb5DetectEncryptionFree(ctx: &mut DetectKrb5TicketEncryptionData) { // Just unbox... std::mem::drop(Box::from_raw(ctx)); } diff --git a/rust/src/krb/krb5.rs b/rust/src/krb/krb5.rs index 81a257eda3..faeacaed84 100644 --- a/rust/src/krb/krb5.rs +++ b/rust/src/krb/krb5.rs @@ -308,8 +308,7 @@ pub fn test_weak_encryption(alg:EncryptionType) -> bool { /// Returns *mut KRB5State -#[no_mangle] -pub extern "C" fn rs_krb5_state_new(_orig_state: *mut std::os::raw::c_void, _orig_proto: AppProto) -> *mut std::os::raw::c_void { +extern "C" fn krb5_state_new(_orig_state: *mut std::os::raw::c_void, _orig_proto: AppProto) -> *mut std::os::raw::c_void { let state = KRB5State::new(); let boxed = Box::new(state); return Box::into_raw(boxed) as *mut _; @@ -317,14 +316,12 @@ pub extern "C" fn rs_krb5_state_new(_orig_state: *mut std::os::raw::c_void, _ori /// Params: /// - state: *mut KRB5State as void pointer -#[no_mangle] -pub extern "C" fn rs_krb5_state_free(state: *mut std::os::raw::c_void) { +extern "C" fn krb5_state_free(state: *mut std::os::raw::c_void) { let mut state: Box = unsafe{Box::from_raw(state as _)}; state.free(); } -#[no_mangle] -pub unsafe extern "C" fn rs_krb5_state_get_tx(state: *mut std::os::raw::c_void, +unsafe extern "C" fn krb5_state_get_tx(state: *mut std::os::raw::c_void, tx_id: u64) -> *mut std::os::raw::c_void { @@ -335,24 +332,21 @@ pub unsafe extern "C" fn rs_krb5_state_get_tx(state: *mut std::os::raw::c_void, } } -#[no_mangle] -pub unsafe extern "C" fn rs_krb5_state_get_tx_count(state: *mut std::os::raw::c_void) +unsafe extern "C" fn krb5_state_get_tx_count(state: *mut std::os::raw::c_void) -> u64 { let state = cast_pointer!(state,KRB5State); state.tx_id } -#[no_mangle] -pub unsafe extern "C" fn rs_krb5_state_tx_free(state: *mut std::os::raw::c_void, +unsafe extern "C" fn krb5_state_tx_free(state: *mut std::os::raw::c_void, tx_id: u64) { let state = cast_pointer!(state,KRB5State); state.free_tx(tx_id); } -#[no_mangle] -pub extern "C" fn rs_krb5_tx_get_alstate_progress(_tx: *mut std::os::raw::c_void, +pub extern "C" fn krb5_tx_get_alstate_progress(_tx: *mut std::os::raw::c_void, _direction: u8) -> std::os::raw::c_int { @@ -361,8 +355,7 @@ pub extern "C" fn rs_krb5_tx_get_alstate_progress(_tx: *mut std::os::raw::c_void static mut ALPROTO_KRB5 : AppProto = ALPROTO_UNKNOWN; -#[no_mangle] -pub unsafe extern "C" fn rs_krb5_probing_parser(_flow: *const Flow, +unsafe extern "C" fn krb5_probing_parser(_flow: *const Flow, _direction: u8, input:*const u8, input_len: u32, _rdir: *mut u8) -> AppProto @@ -403,8 +396,7 @@ pub unsafe extern "C" fn rs_krb5_probing_parser(_flow: *const Flow, } } -#[no_mangle] -pub unsafe extern "C" fn rs_krb5_probing_parser_tcp(_flow: *const Flow, +unsafe extern "C" fn krb5_probing_parser_tcp(_flow: *const Flow, direction: u8, input:*const u8, input_len: u32, rdir: *mut u8) -> AppProto @@ -418,7 +410,7 @@ pub unsafe extern "C" fn rs_krb5_probing_parser_tcp(_flow: *const Flow, Ok((rem, record_mark)) => { // protocol implementations forbid very large requests if record_mark > 16384 { return ALPROTO_FAILED; } - return rs_krb5_probing_parser(_flow, direction, + return krb5_probing_parser(_flow, direction, rem.as_ptr(), rem.len() as u32, rdir); }, Err(Err::Incomplete(_)) => { @@ -430,8 +422,7 @@ pub unsafe extern "C" fn rs_krb5_probing_parser_tcp(_flow: *const Flow, } } -#[no_mangle] -pub unsafe extern "C" fn rs_krb5_parse_request(_flow: *const Flow, +pub unsafe extern "C" fn krb5_parse_request(_flow: *const Flow, state: *mut std::os::raw::c_void, _pstate: *mut std::os::raw::c_void, stream_slice: StreamSlice, @@ -445,8 +436,7 @@ pub unsafe extern "C" fn rs_krb5_parse_request(_flow: *const Flow, AppLayerResult::ok() } -#[no_mangle] -pub unsafe extern "C" fn rs_krb5_parse_response(_flow: *const Flow, +unsafe extern "C" fn krb5_parse_response(_flow: *const Flow, state: *mut std::os::raw::c_void, _pstate: *mut std::os::raw::c_void, stream_slice: StreamSlice, @@ -460,8 +450,7 @@ pub unsafe extern "C" fn rs_krb5_parse_response(_flow: *const Flow, AppLayerResult::ok() } -#[no_mangle] -pub unsafe extern "C" fn rs_krb5_parse_request_tcp(_flow: *const Flow, +unsafe extern "C" fn krb5_parse_request_tcp(_flow: *const Flow, state: *mut std::os::raw::c_void, _pstate: *mut std::os::raw::c_void, stream_slice: StreamSlice, @@ -518,8 +507,7 @@ pub unsafe extern "C" fn rs_krb5_parse_request_tcp(_flow: *const Flow, AppLayerResult::ok() } -#[no_mangle] -pub unsafe extern "C" fn rs_krb5_parse_response_tcp(_flow: *const Flow, +unsafe extern "C" fn krb5_parse_response_tcp(_flow: *const Flow, state: *mut std::os::raw::c_void, _pstate: *mut std::os::raw::c_void, stream_slice: StreamSlice, @@ -582,26 +570,26 @@ export_state_data_get!(krb5_get_state_data, KRB5State); const PARSER_NAME : &[u8] = b"krb5\0"; #[no_mangle] -pub unsafe extern "C" fn rs_register_krb5_parser() { +pub unsafe extern "C" fn SCRegisterKrb5Parser() { let default_port = CString::new("88").unwrap(); let mut 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_krb5_probing_parser), - probe_tc : Some(rs_krb5_probing_parser), + probe_ts : Some(krb5_probing_parser), + probe_tc : Some(krb5_probing_parser), min_depth : 0, max_depth : 16, - state_new : rs_krb5_state_new, - state_free : rs_krb5_state_free, - tx_free : rs_krb5_state_tx_free, - parse_ts : rs_krb5_parse_request, - parse_tc : rs_krb5_parse_response, - get_tx_count : rs_krb5_state_get_tx_count, - get_tx : rs_krb5_state_get_tx, + state_new : krb5_state_new, + state_free : krb5_state_free, + tx_free : krb5_state_tx_free, + parse_ts : krb5_parse_request, + parse_tc : krb5_parse_response, + get_tx_count : krb5_state_get_tx_count, + get_tx : krb5_state_get_tx, tx_comp_st_ts : 1, tx_comp_st_tc : 1, - tx_get_progress : rs_krb5_tx_get_alstate_progress, + tx_get_progress : krb5_tx_get_alstate_progress, get_eventinfo : Some(KRB5Event::get_event_info), get_eventinfo_byid : Some(KRB5Event::get_event_info_by_id), localstorage_new : None, @@ -632,10 +620,10 @@ pub unsafe extern "C" fn rs_register_krb5_parser() { } // register TCP parser parser.ipproto = core::IPPROTO_TCP; - parser.probe_ts = Some(rs_krb5_probing_parser_tcp); - parser.probe_tc = Some(rs_krb5_probing_parser_tcp); - parser.parse_ts = rs_krb5_parse_request_tcp; - parser.parse_tc = rs_krb5_parse_response_tcp; + parser.probe_ts = Some(krb5_probing_parser_tcp); + parser.probe_tc = Some(krb5_probing_parser_tcp); + parser.parse_ts = krb5_parse_request_tcp; + parser.parse_tc = krb5_parse_response_tcp; let ip_proto_str = CString::new("tcp").unwrap(); if AppLayerProtoDetectConfProtoDetectionEnabled(ip_proto_str.as_ptr(), parser.name) != 0 { let alproto = AppLayerRegisterProtocolDetection(&parser, 1); diff --git a/rust/src/krb/log.rs b/rust/src/krb/log.rs index 1f57da24f2..c34b58a931 100644 --- a/rust/src/krb/log.rs +++ b/rust/src/krb/log.rs @@ -70,7 +70,7 @@ fn krb5_log_response(jsb: &mut JsonBuilder, tx: &KRB5Transaction) -> Result<(), } #[no_mangle] -pub extern "C" fn rs_krb5_log_json_response(tx: &KRB5Transaction, jsb: &mut JsonBuilder) -> bool +pub extern "C" fn SCKrb5LogJsonResponse(tx: &KRB5Transaction, jsb: &mut JsonBuilder) -> bool { krb5_log_response(jsb, tx).is_ok() } diff --git a/src/app-layer-parser.c b/src/app-layer-parser.c index e6693e9c8a..e97b7c3440 100644 --- a/src/app-layer-parser.c +++ b/src/app-layer-parser.c @@ -1790,7 +1790,7 @@ void AppLayerParserRegisterProtocolParsers(void) rs_register_ntp_parser(); RegisterTFTPParsers(); RegisterIKEParsers(); - rs_register_krb5_parser(); + SCRegisterKrb5Parser(); SCRegisterDhcpParser(); SCRegisterSnmpParser(); rs_sip_register_parser(); diff --git a/src/detect-krb5-cname.c b/src/detect-krb5-cname.c index d933fa1657..e3c5f6bfda 100644 --- a/src/detect-krb5-cname.c +++ b/src/detect-krb5-cname.c @@ -60,7 +60,7 @@ void DetectKrb5CNameRegister(void) sigmatch_table[DETECT_KRB5_CNAME].desc = "sticky buffer to match on Kerberos 5 client name"; DetectAppLayerMultiRegister( - "krb5_cname", ALPROTO_KRB5, SIG_FLAG_TOCLIENT, 1, rs_krb5_tx_get_cname, 2); + "krb5_cname", ALPROTO_KRB5, SIG_FLAG_TOCLIENT, 1, SCKrb5TxGetCname, 2); DetectBufferTypeSetDescriptionByName("krb5_cname", "Kerberos 5 ticket client name"); diff --git a/src/detect-krb5-errcode.c b/src/detect-krb5-errcode.c index a991963630..bbe71ee556 100644 --- a/src/detect-krb5-errcode.c +++ b/src/detect-krb5-errcode.c @@ -103,7 +103,7 @@ static int DetectKrb5ErrCodeMatch (DetectEngineThreadCtx *det_ctx, SCEnter(); - ret = rs_krb5_tx_get_errcode(txv, &err_code); + ret = SCKrb5TxGetErrorCode(txv, &err_code); if (ret != 0) SCReturnInt(0); diff --git a/src/detect-krb5-msgtype.c b/src/detect-krb5-msgtype.c index 1ef2639a75..87d712907d 100644 --- a/src/detect-krb5-msgtype.c +++ b/src/detect-krb5-msgtype.c @@ -102,7 +102,7 @@ static int DetectKrb5MsgTypeMatch (DetectEngineThreadCtx *det_ctx, SCEnter(); - rs_krb5_tx_get_msgtype(txv, &msg_type); + SCKrb5TxGetMsgType(txv, &msg_type); if (dd->msg_type == msg_type) SCReturnInt(1); diff --git a/src/detect-krb5-sname.c b/src/detect-krb5-sname.c index e850fb90e6..aa3681dde7 100644 --- a/src/detect-krb5-sname.c +++ b/src/detect-krb5-sname.c @@ -60,7 +60,7 @@ void DetectKrb5SNameRegister(void) sigmatch_table[DETECT_KRB5_SNAME].desc = "sticky buffer to match on Kerberos 5 server name"; DetectAppLayerMultiRegister( - "krb5_sname", ALPROTO_KRB5, SIG_FLAG_TOCLIENT, 1, rs_krb5_tx_get_sname, 2); + "krb5_sname", ALPROTO_KRB5, SIG_FLAG_TOCLIENT, 1, SCKrb5TxGetSname, 2); DetectBufferTypeSetDescriptionByName("krb5_sname", "Kerberos 5 ticket server name"); diff --git a/src/detect-krb5-ticket-encryption.c b/src/detect-krb5-ticket-encryption.c index 08331b6d54..99e3a149c8 100644 --- a/src/detect-krb5-ticket-encryption.c +++ b/src/detect-krb5-ticket-encryption.c @@ -27,7 +27,7 @@ static int g_krb5_ticket_encryption_list_id = 0; static void DetectKrb5TicketEncryptionFree(DetectEngineCtx *de_ctx, void *ptr) { - rs_krb5_detect_encryption_free(ptr); + SCKrb5DetectEncryptionFree(ptr); } static int DetectKrb5TicketEncryptionMatch(DetectEngineThreadCtx *det_ctx, Flow *f, uint8_t flags, @@ -37,7 +37,7 @@ static int DetectKrb5TicketEncryptionMatch(DetectEngineThreadCtx *det_ctx, Flow SCEnter(); - SCReturnInt(rs_krb5_detect_encryption_match(txv, dd)); + SCReturnInt(SCKrb5DetectEncryptionMatch(txv, dd)); } static int DetectKrb5TicketEncryptionSetup( @@ -48,7 +48,7 @@ static int DetectKrb5TicketEncryptionSetup( if (DetectSignatureSetAppProto(s, ALPROTO_KRB5) != 0) return -1; - krb5d = rs_krb5_detect_encryption_parse(krb5str); + krb5d = SCKrb5DetectEncryptionParse(krb5str); if (krb5d == NULL) goto error; diff --git a/src/output.c b/src/output.c index da2d661294..af591ee531 100644 --- a/src/output.c +++ b/src/output.c @@ -913,7 +913,7 @@ void OutputRegisterRootLoggers(void) ALPROTO_TFTP, (EveJsonSimpleTxLogFunc)rs_tftp_log_json_request, NULL); // ALPROTO_IKE special: uses state RegisterSimpleJsonApplayerLogger( - ALPROTO_KRB5, (EveJsonSimpleTxLogFunc)rs_krb5_log_json_response, NULL); + ALPROTO_KRB5, (EveJsonSimpleTxLogFunc)SCKrb5LogJsonResponse, NULL); RegisterSimpleJsonApplayerLogger(ALPROTO_QUIC, (EveJsonSimpleTxLogFunc)rs_quic_to_json, NULL); // ALPROTO_DHCP TODO missing RegisterSimpleJsonApplayerLogger(ALPROTO_SIP, (EveJsonSimpleTxLogFunc)rs_sip_log_json, NULL);