Struct fog_crypto::stream::BareStreamKey
source · pub struct BareStreamKey { /* private fields */ }
Expand description
A self-contained implementor of StreamInterface
. It’s expected this will be used unless the
symmetric key is being managed by the OS or a hardware module.
Implementations§
source§impl BareStreamKey
impl BareStreamKey
sourcepub fn with_rng<R>(csprng: &mut R) -> Selfwhere
R: CryptoRng + RngCore,
pub fn with_rng<R>(csprng: &mut R) -> Selfwhere R: CryptoRng + RngCore,
Generate a new key, given a cryptographic RNG.
sourcepub fn with_rng_and_version<R>(
csprng: &mut R,
version: u8
) -> Result<Self, CryptoError>where
R: CryptoRng + RngCore,
pub fn with_rng_and_version<R>( csprng: &mut R, version: u8 ) -> Result<Self, CryptoError>where R: CryptoRng + RngCore,
Generate a new key with a specific version, given a cryptographic RNG. Fails if the version isn’t supported.
sourcepub fn encode_vec(&self, buf: &mut Vec<u8>)
pub fn encode_vec(&self, buf: &mut Vec<u8>)
Encode directly to a byte vector. The resulting vector should be zeroized or overwritten before being dropped.
Trait Implementations§
source§impl Default for BareStreamKey
impl Default for BareStreamKey
source§impl Drop for BareStreamKey
impl Drop for BareStreamKey
source§impl StreamInterface for BareStreamKey
impl StreamInterface for BareStreamKey
source§fn encrypt(
&self,
csprng: &mut dyn CryptoSrc,
lock_type: LockboxType,
content: &[u8]
) -> Vec<u8> ⓘ
fn encrypt( &self, csprng: &mut dyn CryptoSrc, lock_type: LockboxType, content: &[u8] ) -> Vec<u8> ⓘ
Encrypt raw data into a lockbox, following the
StreamKey
-recipient lockbox format (see
lockbox
.source§fn decrypt_lock_key(
&self,
lockbox: &LockLockboxRef
) -> Result<LockKey, CryptoError>
fn decrypt_lock_key( &self, lockbox: &LockLockboxRef ) -> Result<LockKey, CryptoError>
Decrypt a
LockLockboxRef
and return a temporary (not stored in Vault) LockKey on success.source§fn decrypt_identity_key(
&self,
lockbox: &IdentityLockboxRef
) -> Result<IdentityKey, CryptoError>
fn decrypt_identity_key( &self, lockbox: &IdentityLockboxRef ) -> Result<IdentityKey, CryptoError>
Decrypt a
IdentityLockboxRef
and return a temporary (not stored in Vault) IdentityKey
on
success.source§fn decrypt_stream_key(
&self,
lockbox: &StreamLockboxRef
) -> Result<StreamKey, CryptoError>
fn decrypt_stream_key( &self, lockbox: &StreamLockboxRef ) -> Result<StreamKey, CryptoError>
Decrypt a
StreamLockboxRef
and return a temporary (not stored in Vault) StreamKey
on
success.source§fn decrypt_data(&self, lockbox: &DataLockboxRef) -> Result<Vec<u8>, CryptoError>
fn decrypt_data(&self, lockbox: &DataLockboxRef) -> Result<Vec<u8>, CryptoError>
Decrypt a
DataLockboxRef
and return a the decoded raw data on success.source§fn self_export_lock(
&self,
csprng: &mut dyn CryptoSrc,
receive_lock: &LockId
) -> Option<StreamLockbox>
fn self_export_lock( &self, csprng: &mut dyn CryptoSrc, receive_lock: &LockId ) -> Option<StreamLockbox>
Export the symmetric key in a
StreamLockbox
, with receive_lock
as the recipient. If the
key cannot be exported, this should return None.source§fn self_export_stream(
&self,
csprng: &mut dyn CryptoSrc,
receive_stream: &StreamKey
) -> Option<StreamLockbox>
fn self_export_stream( &self, csprng: &mut dyn CryptoSrc, receive_stream: &StreamKey ) -> Option<StreamLockbox>
Export the symmetric key in a
StreamLockbox
, with receive_stream
as the recipient. If
the key cannot be exported, this should return None. Additionally, if the underlying
implementation does not allow moving the raw key into memory (i.e. it cannot call
StreamInterface::encrypt
or
lock_id_encrypt
) then None can also be
returned.Auto Trait Implementations§
impl RefUnwindSafe for BareStreamKey
impl Send for BareStreamKey
impl Sync for BareStreamKey
impl Unpin for BareStreamKey
impl UnwindSafe for BareStreamKey
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