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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.