]> git.ipfire.org Git - thirdparty/suricata.git/commit
rust/base64: add decoder
authorShivani Bhardwaj <shivani@oisf.net>
Wed, 10 Jul 2024 11:20:09 +0000 (16:50 +0530)
committerVictor Julien <victor@inliniac.net>
Mon, 23 Sep 2024 16:59:25 +0000 (18:59 +0200)
commitcbb571a61c49b90200f6471f7af69fc2291a22b9
tree8a263d7727425aec34f9d3c895b74b2feafec16d
parent7ab833471e177cd73e4e3a66ca0c62f6993375c7
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
17 files changed:
rust/src/detect/transform_base64.rs
rust/src/ffi/base64.rs
rust/src/lib.rs
rust/src/mime/smtp.rs
rust/src/utils/base64.rs [new file with mode: 0644]
rust/src/utils/mod.rs [new file with mode: 0644]
src/Makefile.am
src/datasets-md5.c
src/datasets-sha256.c
src/datasets-string.c
src/datasets.c
src/detect-base64-decode.c
src/detect-transform-base64.c
src/runmode-unittests.c
src/tests/fuzz/fuzz_decodebase64.c
src/util-base64.c [deleted file]
src/util-base64.h [deleted file]