mirror of
https://github.com/rosenpass/rosenpass.git
synced 2026-02-28 06:23:08 -08:00
Implements: - An additional allocator to use memfd_secret(2) and guard pages using mmap(2), implemented in quininer/memsec#16 - An allocator that abstracts away underlying allocators, and uses specified allocator set by rosenpass_secret_memory::policy functions (or a function that sets rosenpass_secret_memory::alloc::ALLOC_INIT - Updates to tests- integration, fuzz, bench: some tests use procspawn to spawn multiple processes with different allocator policies
25 lines
727 B
Rust
25 lines
727 B
Rust
#![no_main]
|
|
extern crate rosenpass;
|
|
|
|
use libfuzzer_sys::fuzz_target;
|
|
|
|
use rosenpass::protocol::CryptoServer;
|
|
use rosenpass_cipher_traits::Kem;
|
|
use rosenpass_ciphers::kem::StaticKem;
|
|
use rosenpass_secret_memory::policy::*;
|
|
use rosenpass_secret_memory::Secret;
|
|
use std::sync::Once;
|
|
|
|
static ONCE: Once = Once::new();
|
|
fuzz_target!(|rx_buf: &[u8]| {
|
|
ONCE.call_once(secret_policy_use_only_malloc_secrets);
|
|
let sk = Secret::from_slice(&[0; StaticKem::SK_LEN]);
|
|
let pk = Secret::from_slice(&[0; StaticKem::PK_LEN]);
|
|
|
|
let mut cs = CryptoServer::new(sk, pk);
|
|
let mut tx_buf = [0; 10240];
|
|
|
|
// We expect errors while fuzzing therefore we do not check the result.
|
|
let _ = cs.handle_msg(rx_buf, &mut tx_buf);
|
|
});
|