use foctet_core::BodyEnvelopeLimits;
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct HttpConfig {
strip_content_type_on_open: bool,
set_scope_header_on_seal: bool,
}
impl Default for HttpConfig {
fn default() -> Self {
Self {
strip_content_type_on_open: true,
set_scope_header_on_seal: true,
}
}
}
impl HttpConfig {
pub fn new() -> Self {
Self::default()
}
pub fn strip_content_type_on_open(&self) -> bool {
self.strip_content_type_on_open
}
pub fn set_scope_header_on_seal(&self) -> bool {
self.set_scope_header_on_seal
}
pub fn with_strip_content_type_on_open(mut self, value: bool) -> Self {
self.strip_content_type_on_open = value;
self
}
pub fn with_scope_header_on_seal(mut self, value: bool) -> Self {
self.set_scope_header_on_seal = value;
self
}
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct HttpSealOptions {
recipient_public_key: [u8; 32],
recipient_key_id: Vec<u8>,
limits: Option<BodyEnvelopeLimits>,
}
impl HttpSealOptions {
pub fn new(recipient_public_key: [u8; 32], recipient_key_id: impl AsRef<[u8]>) -> Self {
Self {
recipient_public_key,
recipient_key_id: recipient_key_id.as_ref().to_vec(),
limits: None,
}
}
pub fn with_limits(mut self, limits: BodyEnvelopeLimits) -> Self {
self.limits = Some(limits);
self
}
pub fn recipient_public_key(&self) -> [u8; 32] {
self.recipient_public_key
}
pub fn recipient_key_id(&self) -> &[u8] {
&self.recipient_key_id
}
pub fn limits(&self) -> Option<&BodyEnvelopeLimits> {
self.limits.as_ref()
}
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct HttpOpenOptions {
recipient_secret_key: [u8; 32],
limits: Option<BodyEnvelopeLimits>,
}
impl HttpOpenOptions {
pub fn new(recipient_secret_key: [u8; 32]) -> Self {
Self {
recipient_secret_key,
limits: None,
}
}
pub fn with_limits(mut self, limits: BodyEnvelopeLimits) -> Self {
self.limits = Some(limits);
self
}
pub fn recipient_secret_key(&self) -> [u8; 32] {
self.recipient_secret_key
}
pub fn limits(&self) -> Option<&BodyEnvelopeLimits> {
self.limits.as_ref()
}
}