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 keys(&self) -> Option<&KeyRing>
pub fn keys(&self) -> Option<&KeyRing>
The key ring, when this was built from one.
None when the encrypter and signer were supplied separately — see
new. A caller that needs a ring of its own should ask
for one rather than assume.
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
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
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§
impl<T> Actor for T
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
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,
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> ⓘ
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> ⓘ
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 more