pub struct Encryption { /* private fields */ }Expand description
The application’s encrypter and signer, as one container-storable value.
A newtype over the two ports rather than binding them separately, so
swapping either does not change a call site — the same reason
rainier-framework’s Views wraps a view engine.
Implementations§
Source§impl Encryption
impl Encryption
Sourcepub fn new(encrypter: Arc<dyn Encrypter>, signer: Arc<dyn Signer>) -> Encryption
pub fn new(encrypter: Arc<dyn Encrypter>, signer: Arc<dyn Signer>) -> Encryption
Wrap an encrypter and a signer.
Sourcepub fn from_keys(keys: KeyRing) -> Encryption
pub fn from_keys(keys: KeyRing) -> Encryption
The default pairing — XChaCha20-Poly1305 and HMAC-SHA256 over one ring.
Sourcepub fn from_keys_with(keys: KeyRing, cipher: Cipher) -> Encryption
pub fn from_keys_with(keys: KeyRing, cipher: Cipher) -> Encryption
The same, with an explicit Cipher.
Reading is unaffected: a payload names its own algorithm, so switching this does not strand anything already written.
Sourcepub fn encrypt_json<T>(&self, value: &T) -> Result<String, Error>where
T: Serialize,
pub fn encrypt_json<T>(&self, value: &T) -> Result<String, Error>where
T: Serialize,
Encrypt any serialisable value as JSON.
Sourcepub fn decrypt_json<T>(&self, payload: &str) -> Result<T, Error>where
T: DeserializeOwned,
pub fn decrypt_json<T>(&self, payload: &str) -> Result<T, Error>where
T: DeserializeOwned,
Decrypt JSON back into a value.
Trait Implementations§
Source§impl Clone for Encryption
impl Clone for Encryption
Source§fn clone(&self) -> Encryption
fn clone(&self) -> Encryption
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 !RefUnwindSafe for Encryption
impl !UnwindSafe for Encryption
impl Freeze for Encryption
impl Send for Encryption
impl Sync for Encryption
impl Unpin for Encryption
impl UnsafeUnpin for Encryption
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Event for T
impl<T> Event for T
Source§fn event_name() -> &'static strwhere
Self: Sized,
fn event_name() -> &'static strwhere
Self: Sized,
A human-readable name, used by wildcard listeners and log output.
Always the Rust type path; see the trait docs.
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 moreCreates a shared type from an unshared type.