pub struct EntropyConfig {
pub key_file: PathBuf,
pub iv_file: PathBuf,
pub listen_addr: SocketAddr,
pub send_addr: Option<SocketAddr>,
pub peer_endpoint: SocketAddr,
pub buffer_size: usize,
pub header_size: usize,
pub encrypt: bool,
}Expand description
Operator-facing configuration for the entropy worker.
§Examples
use std::path::PathBuf;
use dynomite::entropy::EntropyConfig;
let cfg = EntropyConfig {
key_file: PathBuf::from("conf/recon_key.pem"),
iv_file: PathBuf::from("conf/recon_iv.pem"),
listen_addr: "127.0.0.1:8105".parse().unwrap(),
send_addr: None,
peer_endpoint: "127.0.0.1:8105".parse().unwrap(),
buffer_size: 16 * 1024,
header_size: 1024,
encrypt: true,
};
assert_eq!(cfg.buffer_size, 16 * 1024);Fields§
§key_file: PathBufOn-disk path to the AES-128 key file.
iv_file: PathBufOn-disk path to the AES-128-CBC IV file.
listen_addr: SocketAddrAddress the EntropyReceiver binds to.
send_addr: Option<SocketAddr>Optional local bind address for the EntropySender. When
None the kernel assigns an ephemeral port on the wildcard
address.
peer_endpoint: SocketAddrAddress the EntropySender dials.
buffer_size: usizePlaintext chunk size (bytes). Must be a multiple of 16 when
encryption is enabled and must not exceed
MAX_BUFFER_SIZE.
header_size: usizeSnapshot header size (bytes). Must not exceed
MAX_HEADER_SIZE.
encrypt: boolWhether per-chunk payloads are AES-128-CBC encrypted.
Implementations§
Source§impl EntropyConfig
impl EntropyConfig
Sourcepub fn validate(&self) -> Result<(), EntropyError>
pub fn validate(&self) -> Result<(), EntropyError>
Validate the cross-field invariants the protocol demands.
§Errors
EntropyError::Config when any invariant is violated.
§Examples
use std::path::PathBuf;
use dynomite::entropy::EntropyConfig;
let mut cfg = EntropyConfig {
key_file: PathBuf::from("k"),
iv_file: PathBuf::from("v"),
listen_addr: "127.0.0.1:0".parse().unwrap(),
send_addr: None,
peer_endpoint: "127.0.0.1:0".parse().unwrap(),
buffer_size: 32,
header_size: 64,
encrypt: true,
};
assert!(cfg.validate().is_ok());
cfg.buffer_size = 0;
assert!(cfg.validate().is_err());Trait Implementations§
Source§impl Clone for EntropyConfig
impl Clone for EntropyConfig
Source§fn clone(&self) -> EntropyConfig
fn clone(&self) -> EntropyConfig
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for EntropyConfig
impl RefUnwindSafe for EntropyConfig
impl Send for EntropyConfig
impl Sync for EntropyConfig
impl Unpin for EntropyConfig
impl UnsafeUnpin for EntropyConfig
impl UnwindSafe for EntropyConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more