diff options
author | Nora Widdecke <nora@sequoia-pgp.org> | 2022-07-25 13:21:30 +0200 |
---|---|---|
committer | Nora Widdecke <nora@sequoia-pgp.org> | 2022-07-25 14:50:06 +0200 |
commit | e04d73a476c6e6fb1493fe2d8b14b696af516f75 (patch) | |
tree | 6ff081e9a23ceabe0eb2ae6575d81bdeddf40f73 | |
parent | f5b3d935e4bf14fb8b51a85f5cb0482408271036 (diff) |
add new trait bounds
- block_modes 0.8 adds new trait bounds to the ciphers used in Cfb and
Ecb block modes. Cfb<C> now requires C to be BlockEncrypt, Ecb<C>
now requires C to be BlockEncrypt and BlockDecrypt.
-rw-r--r-- | openpgp/src/crypto/backend/rust/aead.rs | 9 | ||||
-rw-r--r-- | openpgp/src/crypto/backend/rust/symmetric.rs | 4 |
2 files changed, 6 insertions, 7 deletions
diff --git a/openpgp/src/crypto/backend/rust/aead.rs b/openpgp/src/crypto/backend/rust/aead.rs index ad5f3a9c..76a5379f 100644 --- a/openpgp/src/crypto/backend/rust/aead.rs +++ b/openpgp/src/crypto/backend/rust/aead.rs @@ -2,8 +2,7 @@ use std::cmp; -use cipher::{BlockCipher, NewBlockCipher}; -use cipher::block::Block; +use cipher::{Block, BlockCipher, BlockEncrypt, NewBlockCipher}; use cipher::consts::U16; use eax::online::{Eax, Encrypt, Decrypt}; use generic_array::{ArrayLength, GenericArray}; @@ -34,7 +33,7 @@ impl<T, N: ArrayLength<T>> GenericArrayExt<T, N> for GenericArray<T, N> { impl<Cipher> Aead for Eax<Cipher, Encrypt> where - Cipher: BlockCipher<BlockSize = U16> + NewBlockCipher + Clone, + Cipher: BlockCipher<BlockSize = U16> + NewBlockCipher + BlockEncrypt + Clone, Cipher::ParBlocks: ArrayLength<Block<Cipher>>, { fn update(&mut self, ad: &[u8]) { @@ -64,7 +63,7 @@ where impl<Cipher> Aead for Eax<Cipher, Decrypt> where - Cipher: BlockCipher<BlockSize = U16> + NewBlockCipher + Clone, + Cipher: BlockCipher<BlockSize = U16> + NewBlockCipher + BlockEncrypt + Clone, Cipher::ParBlocks: ArrayLength<Block<Cipher>>, { fn update(&mut self, ad: &[u8]) { @@ -93,7 +92,7 @@ where impl<Cipher, Op> seal::Sealed for Eax<Cipher, Op> where - Cipher: BlockCipher<BlockSize = U16> + NewBlockCipher + Clone, + Cipher: BlockCipher<BlockSize = U16> + NewBlockCipher + BlockEncrypt + Clone, Cipher::ParBlocks: ArrayLength<Block<Cipher>>, Op: eax::online::CipherOp, {} diff --git a/openpgp/src/crypto/backend/rust/symmetric.rs b/openpgp/src/crypto/backend/rust/symmetric.rs index 0867752b..70569f55 100644 --- a/openpgp/src/crypto/backend/rust/symmetric.rs +++ b/openpgp/src/crypto/backend/rust/symmetric.rs @@ -2,7 +2,7 @@ use std::slice; use block_modes::{BlockMode, Cfb, Ecb}; use block_padding::ZeroPadding; -use cipher::{BlockCipher, NewBlockCipher}; +use cipher::{BlockCipher, BlockDecrypt, BlockEncrypt, NewBlockCipher}; use generic_array::{ArrayLength, GenericArray}; use typenum::Unsigned; @@ -14,7 +14,7 @@ macro_rules! impl_mode { ($mode:ident) => { impl<C> Mode for $mode<C, ZeroPadding> where - C: BlockCipher + NewBlockCipher + Send + Sync, + C: BlockCipher + NewBlockCipher + BlockDecrypt + BlockEncrypt + Send + Sync, { fn block_size(&self) -> usize { C::BlockSize::to_usize() |