Commit Graph

119 Commits (7ef4caf90e073cdd8d35d9d16932eb18d6502826)

Author SHA1 Message Date
Jason Ish 7ef4caf90e rust/flow: move flow support to its own file (cleanup)
Move the Rust Flow support from core.rs to flow.rs.
6 months ago
Jason Ish 4c12165816 rust: allow static_mut_refs for now
But we should fix all these soon.
8 months ago
Victor Julien 91828ec00b smb: use lru for guid2name map; rename
Use `lru` crate. Rename to reflect this.

Add `app-layer.protocols.smb.max-guid-cache-size` to control the max
size of the LRU cache.

Ticket: #5672.
9 months ago
Shivani Bhardwaj cbb571a61c rust/base64: add decoder
Add a pure rust base64 decoder. This supports 3 modes of operation just
like the C decoder as follows.
1. RFC 2045
2. RFC 4648
3. Strict

One notable change is that "strict" mode is carried out by the rust
base64 crate instead of native Rust. This crate was already used for
encoding in a few places like datasets of string type. As a part of this
mode, now, only the strings that can be reliably converted back are
decoded.

The decoder fn is available to C via FFI.

Bug 6280
Ticket 7065
Ticket 7058
10 months ago
Philippe Antoine 304271e63a rust: compatibility with cbindgen 0.27
Ticket: 7206

Cbindgen 0.27 now handles extern blocks as extern "C" blocks.
The way to differentiate them is to use a special comment
before the block.
12 months ago
Giuseppe Longo ce7e190501 rust/ldap: implement types and filters
This implementation adds types and filters specified in the LDAP RFC to
work with the ldap_parser.
Although using the parser directly would be
best, strange behavior has been observed during transaction logging.
It appears that C pointers are being overwritten, leading to incorrect
output when LDAP fields are logged.
1 year ago
Philippe Antoine 82c03f72c3 enip: convert to rust
Ticket: 3958

- transactions are now bidirectional
- there is a logger
- gap support is improved with probing for resync
- frames support
- app-layer events
- enip_command keyword accepts now string enumeration as values.
- add enip.status keyword
- add keywords :
    enip.product_name, enip.protocol_version, enip.revision,
    enip.identity_status, enip.state, enip.serial, enip.product_code,
    enip.device_type, enip.vendor_id, enip.capabilities,
    enip.cip_attribute, enip.cip_class, enip.cip_instance,
    enip.cip_status, enip.cip_extendedstatus
1 year ago
Jason Ish 2e440169d6 lua: remove lua as a compile time feature
Its always built-in. However, can be disabled at runtime.
1 year ago
Jason Ish bc011f2205 lua: use rust crate to vendor (bundle) lua
Remove lua-dev(el) from all CI tests.
1 year ago
Giuseppe Longo 1ccfc35214 rust/sdp: implement protocol parser
This implements a parser for the SDP protocol.
Given that SDP is encapsulated within other protocols (such as SIP),
enabling it separately is not necessary.

Ticket #6627.
1 year ago
Philippe Antoine 44b6aa5e4b app-layer: websockets protocol support
Ticket: 2695
1 year ago
Sascha Steinbiss 120313f4da ja4: implement for TLS and QUIC
Ticket: OISF#6379
1 year ago
Philippe Antoine 673d13d445 rust: allow clippy::items_after_test_module
As clippy began to complain about jsonbuilder.rs
2 years ago
Jason Ish 15ed51f9b8 feature: provide a Rust binding to the feature API
As the feature module is not available for Rust unit tests, a mock
version is also provided.
2 years ago
Daniel Olatunji 54de0450f4 rust: remove cbindgen:ignore on frames module
This directive is no longer required, and does
mess up the rustdoc description of the module.
2 years ago
Daniel Olatunji 5c0af0b203 rust/doc: add docstring to rust module files.
Issue: #4584
2 years ago
Jason Ish 159b72c101 rust/clippy: allow derivable impls
The latest Rust will automatically "fix" derivable default
implementation, which is nice, but makes changes that don't meet our
current MSRV, so allow derivable impls for now.
2 years ago
Jason Ish 29f345af1a rust: allow uninlined_format_args
Newer versions of Rust/clippy are getting picky about format strings.
We should allow and use the new style, but also not prevent the old
style.
3 years ago
Jason Ish bd9adac3ac rust/clippy: comments on why we have specific allows 3 years ago
Jason Ish dfd7abe185 rust/clippy: fix lint: type_complexity
Convert a DNS sub-parser to use a return type rather than a large
tuple. For mqtt, allow the lint for now, but remove the global allow.
3 years ago
Jason Ish e49ce49471 rust/clippy: allow result_unit_err in http2 only
Its the only module making use of this pattern, but we shouldn't let
new modules use this pattern.
3 years ago
Jason Ish 7ba2dadc7f rust/clippy: fix lint: upper_case_acronyms 3 years ago
Jason Ish 029ac650d7 rust/clippy: fix lint: manual_find
These get_tx methods look like ideal candidates for generic and/or
derived methods.
3 years ago
Jason Ish 4940dfb3bd rust/clippy: fix lint: len_without_is_empty 3 years ago
Jason Ish e1cffd348f rust/clippy: fix lint: field_reassign_with_default 3 years ago
Jason Ish 9df7c326b9 rust/clippy: remove allow: collapsible_else_if 3 years ago
Jason Ish 30ee5fc835 rust/clippy: remove allow: collapsible_if
Already clean.
3 years ago
Jason Ish da12b77f18 rust/clippy: fix lint: new_without_default 3 years ago
Jason Ish c4cf062a6f rust/clippy: fix lint: redundant_pattern_matching 3 years ago
Jason Ish 7c293ff68f rust/clippy: fix lint: never_loop 3 years ago
Jason Ish e8823644ec rust/clippy: fix lint: nonminimal_bool 3 years ago
Jason Ish 53ae0c8a06 rust/clippy: fix lint: derive_partial_eq_without_eq 3 years ago
Jason Ish 5d62995e26 rust/clippy: fix lint: explicit_counter_loop 3 years ago
Jason Ish f250b92180 rust/clippy: fix lint: extra_unused_lifetimes 3 years ago
Jason Ish 3044565cf4 rust/clippy: fix lint: needless_range_loop 3 years ago
Jason Ish 2ac52d0610 rust/clippy: remove lint: for_loops_over_fallibles
Already clean.
3 years ago
Jason Ish c026d8531b rust/clippy: fix lint: match_ref_pats 3 years ago
Jason Ish 359d5fcb7e rust/clippy: fix lint: needless_lifetimes 3 years ago
Jason Ish 4e001688de rust/clippy: remove lint: bool_comparison
Already clean.
3 years ago
Jason Ish f15ffbc869 rust/clippy: fix lint: single_match
Allow this lint in some cases where a match statement adds clarity.
3 years ago
Jason Ish 925bc74c1f rust/clippy: fix lint: while_let_loop 3 years ago
Todd Mortimer 7d1a8cc335 file/swf: Use lzma-rs decompression instead of libhtp.
Use the lzma-rs crate for decompressing swf/lzma files instead of
the lzma decompressor in libhtp. This decouples suricata from libhtp
except for actual http parsing, and means libhtp no longer has to
export a lzma decompression interface.

Ticket: #5638
3 years ago
Aaron Bungay 86037885a9 bittorrent-dht: add bittorrent-dht app layer
Parses and logs the bittorrent-dht protocol.

Note: Includes some compilation fixups after rebase by Jason Ish.

Feature: #3086
3 years ago
Alice Akaki ccdc992a71 rust: fix lint warnings about mixed case hex literals
Ticket: #4593
3 years ago
Gabriel Lima Luz 4e90d17fd9 rust: fix lint warnings about if same then else
Ticket: 4609
3 years ago
Kristina Jefferson 9cd00424c3 rust: fix lint warnings about ptr_arg
Ticket: #4599
3 years ago
Jason Ish 560c4ea125 rust: don't allow fixed up clippy lints 3 years ago
Jason Ish 5a10fcd2d8 rust: suppress large enum variant lint at location
And disable the global lint.
3 years ago
Jason Ish 36f8ada305 rust: remove clippy lints that no longer warn 3 years ago
Jason Ish e8c00dd980 rust: sort clippy allow statements 3 years ago