pub struct Chacha20Key<T: Chacha20Type>(/* private fields */);Available on crate feature
chacha only.Expand description
A ChaCha20 symmetric encryption key
Implementations§
Source§impl<T: Chacha20Type> Chacha20Key<T>
impl<T: Chacha20Type> Chacha20Key<T>
Sourcepub const KEY_LENGTH: usize = KeyType<T>::SIZE
pub const KEY_LENGTH: usize = KeyType<T>::SIZE
The length of the secret key in bytes
Sourcepub const NONCE_LENGTH: usize = NonceSize<T>::USIZE
pub const NONCE_LENGTH: usize = NonceSize<T>::USIZE
The length of the AEAD encryption nonce
Sourcepub const TAG_LENGTH: usize = TagSize<T>::USIZE
pub const TAG_LENGTH: usize = TagSize<T>::USIZE
The length of the AEAD encryption tag
Trait Implementations§
Source§impl<T: Chacha20Type> Clone for Chacha20Key<T>
impl<T: Chacha20Type> Clone for Chacha20Key<T>
Source§impl<T: Chacha20Type> Debug for Chacha20Key<T>
impl<T: Chacha20Type> Debug for Chacha20Key<T>
Source§impl<'de, T: Chacha20Type> Deserialize<'de> for Chacha20Key<T>
impl<'de, T: Chacha20Type> Deserialize<'de> for Chacha20Key<T>
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<T: Chacha20Type> FromJwk for Chacha20Key<T>
impl<T: Chacha20Type> FromJwk for Chacha20Key<T>
Source§impl<T: Chacha20Type> FromKeyDerivation for Chacha20Key<T>
impl<T: Chacha20Type> FromKeyDerivation for Chacha20Key<T>
Source§fn from_key_derivation<D: KeyDerivation>(derive: D) -> Result<Self, Error>where
Self: Sized,
fn from_key_derivation<D: KeyDerivation>(derive: D) -> Result<Self, Error>where
Self: Sized,
Create a new instance of a key from a key derivation
Source§impl<Lhs, Rhs, T> FromKeyExchange<Lhs, Rhs> for Chacha20Key<T>
impl<Lhs, Rhs, T> FromKeyExchange<Lhs, Rhs> for Chacha20Key<T>
Source§impl<T: Chacha20Type> HasKeyAlg for Chacha20Key<T>
impl<T: Chacha20Type> HasKeyAlg for Chacha20Key<T>
Source§impl<T: Chacha20Type> HasKeyBackend for Chacha20Key<T>
impl<T: Chacha20Type> HasKeyBackend for Chacha20Key<T>
Source§fn key_backend(&self) -> KeyBackend
fn key_backend(&self) -> KeyBackend
Get the corresponding key backend.
Source§impl<T: Chacha20Type> KeyAeadInPlace for Chacha20Key<T>
impl<T: Chacha20Type> KeyAeadInPlace for Chacha20Key<T>
Source§fn encrypt_in_place(
&self,
buffer: &mut dyn ResizeBuffer,
nonce: &[u8],
aad: &[u8],
) -> Result<usize, Error>
fn encrypt_in_place( &self, buffer: &mut dyn ResizeBuffer, nonce: &[u8], aad: &[u8], ) -> Result<usize, Error>
Encrypt a secret value in place, appending the verification tag
Source§fn decrypt_in_place(
&self,
buffer: &mut dyn ResizeBuffer,
nonce: &[u8],
aad: &[u8],
) -> Result<(), Error>
fn decrypt_in_place( &self, buffer: &mut dyn ResizeBuffer, nonce: &[u8], aad: &[u8], ) -> Result<(), Error>
Decrypt an encrypted (verification tag appended) value in place
Source§fn aead_params(&self) -> KeyAeadParams
fn aead_params(&self) -> KeyAeadParams
Get the nonce and tag length for encryption
Source§fn aead_padding(&self, _msg_len: usize) -> usize
fn aead_padding(&self, _msg_len: usize) -> usize
Get the ciphertext padding required
Source§impl<T: Chacha20Type> KeyAeadMeta for Chacha20Key<T>
impl<T: Chacha20Type> KeyAeadMeta for Chacha20Key<T>
Source§type NonceSize = <<T as Chacha20Type>::Aead as AeadCore>::NonceSize
type NonceSize = <<T as Chacha20Type>::Aead as AeadCore>::NonceSize
The size of the AEAD nonce
Source§fn random_nonce() -> GenericArray<u8, Self::NonceSize>
fn random_nonce() -> GenericArray<u8, Self::NonceSize>
Generate a new random nonce
Source§impl<T: Chacha20Type> KeyGen for Chacha20Key<T>
impl<T: Chacha20Type> KeyGen for Chacha20Key<T>
Source§impl<T: Chacha20Type> KeyMeta for Chacha20Key<T>
impl<T: Chacha20Type> KeyMeta for Chacha20Key<T>
Source§type KeySize = <<T as Chacha20Type>::Aead as KeySizeUser>::KeySize
type KeySize = <<T as Chacha20Type>::Aead as KeySizeUser>::KeySize
The size of the key secret bytes
Source§impl<T: Chacha20Type> KeySecretBytes for Chacha20Key<T>
impl<T: Chacha20Type> KeySecretBytes for Chacha20Key<T>
Source§impl<T: Chacha20Type> PartialEq for Chacha20Key<T>
impl<T: Chacha20Type> PartialEq for Chacha20Key<T>
Source§impl<T: Chacha20Type> Serialize for Chacha20Key<T>
impl<T: Chacha20Type> Serialize for Chacha20Key<T>
Source§impl<T: Chacha20Type> ToJwk for Chacha20Key<T>
impl<T: Chacha20Type> ToJwk for Chacha20Key<T>
Source§fn encode_jwk(&self, enc: &mut dyn JwkEncoder) -> Result<(), Error>
fn encode_jwk(&self, enc: &mut dyn JwkEncoder) -> Result<(), Error>
Write the JWK representation to an encoder
Source§fn to_jwk_thumbprint(&self, alg: Option<KeyAlg>) -> Result<String, Error>
fn to_jwk_thumbprint(&self, alg: Option<KeyAlg>) -> Result<String, Error>
Available on crate feature
alloc only.Create the JWK thumbprint of the key
Source§fn to_jwk_public(&self, alg: Option<KeyAlg>) -> Result<String, Error>
fn to_jwk_public(&self, alg: Option<KeyAlg>) -> Result<String, Error>
Available on crate feature
alloc only.Create a JWK of the public key
Source§fn to_jwk_secret(&self, alg: Option<KeyAlg>) -> Result<SecretBytes, Error>
fn to_jwk_secret(&self, alg: Option<KeyAlg>) -> Result<SecretBytes, Error>
Available on crate feature
alloc only.Create a JWK of the secret key
Source§impl<T: Chacha20Type> Zeroize for Chacha20Key<T>
impl<T: Chacha20Type> Zeroize for Chacha20Key<T>
impl<T: Chacha20Type> Eq for Chacha20Key<T>
Auto Trait Implementations§
impl<T> Freeze for Chacha20Key<T>
impl<T> RefUnwindSafe for Chacha20Key<T>where
<<<T as Chacha20Type>::Aead as KeySizeUser>::KeySize as ArrayLength<u8>>::ArrayType: RefUnwindSafe,
impl<T> Send for Chacha20Key<T>
impl<T> Sync for Chacha20Key<T>
impl<T> !Unpin for Chacha20Key<T>
impl<T> UnwindSafe for Chacha20Key<T>where
<<<T as Chacha20Type>::Aead as KeySizeUser>::KeySize as ArrayLength<u8>>::ArrayType: UnwindSafe,
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<K> ToSecretBytes for Kwhere
K: KeySecretBytes,
impl<K> ToSecretBytes for Kwhere
K: KeySecretBytes,
Source§fn write_secret_bytes(&self, out: &mut dyn WriteBuffer) -> Result<(), Error>
fn write_secret_bytes(&self, out: &mut dyn WriteBuffer) -> Result<(), Error>
Write the key secret bytes to a buffer.
Source§fn to_secret_bytes(&self) -> Result<SecretBytes, Error>
fn to_secret_bytes(&self) -> Result<SecretBytes, Error>
Available on crate feature
alloc only.Write the key secret bytes to a new allocated buffer.