]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rust/krb: remove rs_ prefix; visibility fixes
authorJason Ish <jason.ish@oisf.net>
Fri, 2 May 2025 17:14:40 +0000 (11:14 -0600)
committerVictor Julien <victor@inliniac.net>
Sat, 3 May 2025 06:19:41 +0000 (08:19 +0200)
- remove pub/no_mangle where not needed
- replace rs_ naming with SC naming

rust/src/krb/detect.rs
rust/src/krb/krb5.rs
rust/src/krb/log.rs
src/app-layer-parser.c
src/detect-krb5-cname.c
src/detect-krb5-errcode.c
src/detect-krb5-msgtype.c
src/detect-krb5-sname.c
src/detect-krb5-ticket-encryption.c
src/output.c

index 72287aeb434c6d711891c83560c0717f23acf8da..c9528944d1f9fbf39ac228b9f2c56803c93ac983 100644 (file)
@@ -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));
 }
index 81a257eda3702b10291ab5572b07dddc61382ae7..faeacaed84a624fe92b9ec67e40b115e10bf1484 100644 (file)
@@ -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<KRB5State> = 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);
index 1f57da24f2c16d551d4639840645f745b46cfa22..c34b58a9312b4ba18471a96c13220b9818d96901 100644 (file)
@@ -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()
 }
index e6693e9c8add5fd458d7c9253dd83ad35dccc3e1..e97b7c34409e2920de5b53865de51b75781359dd 100644 (file)
@@ -1790,7 +1790,7 @@ void AppLayerParserRegisterProtocolParsers(void)
     rs_register_ntp_parser();
     RegisterTFTPParsers();
     RegisterIKEParsers();
-    rs_register_krb5_parser();
+    SCRegisterKrb5Parser();
     SCRegisterDhcpParser();
     SCRegisterSnmpParser();
     rs_sip_register_parser();
index d933fa165729616a5c2e6180fc03bf9e17d9a254..e3c5f6bfdadbecabbde82187bef1ee423676f56e 100644 (file)
@@ -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");
index a991963630622961452a8f4e0ae4ceb20c501bf4..bbe71ee556bbeaf6e6a89fa133eef12a2f3ec819 100644 (file)
@@ -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);
 
index 1ef2639a7568e0eab8d95a8b0240323a0dc0bee0..87d712907df08b091851004a4281aec5d9abf916 100644 (file)
@@ -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);
index e850fb90e6d55ee8d905841607ab3b3581b57f50..aa3681dde7f2e6bdc375ab7a3f8b7f82ee779b19 100644 (file)
@@ -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");
index 08331b6d543942361aca43feb64764508fbb4a85..99e3a149c892abc152418fcd246ce404c8cd005c 100644 (file)
@@ -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;
 
index da2d661294c1071751f51de9839c880314b03dd6..af591ee531794bb9ab429da9a3d4b3e52e52b08b 100644 (file)
@@ -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);