/rust/registry/src/index.crates.io-1949cf8c6b5b557f/ctr-0.9.2/src/backend.rs
Line | Count | Source |
1 | | use crate::CtrFlavor; |
2 | | use cipher::{ |
3 | | generic_array::ArrayLength, Block, BlockBackend, BlockClosure, BlockSizeUser, ParBlocks, |
4 | | ParBlocksSizeUser, StreamBackend, StreamClosure, |
5 | | }; |
6 | | |
7 | | struct Backend<'a, F, B> |
8 | | where |
9 | | F: CtrFlavor<B::BlockSize>, |
10 | | B: BlockBackend, |
11 | | { |
12 | | ctr_nonce: &'a mut F::CtrNonce, |
13 | | backend: &'a mut B, |
14 | | } |
15 | | |
16 | | impl<'a, F, B> BlockSizeUser for Backend<'a, F, B> |
17 | | where |
18 | | F: CtrFlavor<B::BlockSize>, |
19 | | B: BlockBackend, |
20 | | { |
21 | | type BlockSize = B::BlockSize; |
22 | | } |
23 | | |
24 | | impl<'a, F, B> ParBlocksSizeUser for Backend<'a, F, B> |
25 | | where |
26 | | F: CtrFlavor<B::BlockSize>, |
27 | | B: BlockBackend, |
28 | | { |
29 | | type ParBlocksSize = B::ParBlocksSize; |
30 | | } |
31 | | |
32 | | impl<'a, F, B> StreamBackend for Backend<'a, F, B> |
33 | | where |
34 | | F: CtrFlavor<B::BlockSize>, |
35 | | B: BlockBackend, |
36 | | { |
37 | | #[inline(always)] |
38 | 3.07k | fn gen_ks_block(&mut self, block: &mut Block<Self>) { |
39 | 3.07k | let tmp = F::next_block(self.ctr_nonce); |
40 | 3.07k | self.backend.proc_block((&tmp, block).into()); |
41 | 3.07k | } <ctr::backend::Backend<ctr::flavors::ctr32::Ctr32BE, aes::ni::Aes128BackEnc> as cipher::stream_core::StreamBackend>::gen_ks_block Line | Count | Source | 38 | 3.07k | fn gen_ks_block(&mut self, block: &mut Block<Self>) { | 39 | 3.07k | let tmp = F::next_block(self.ctr_nonce); | 40 | 3.07k | self.backend.proc_block((&tmp, block).into()); | 41 | 3.07k | } |
Unexecuted instantiation: <ctr::backend::Backend<ctr::flavors::ctr32::Ctr32BE, aes::soft::Aes128BackEnc> as cipher::stream_core::StreamBackend>::gen_ks_block |
42 | | |
43 | | #[inline(always)] |
44 | 2.76k | fn gen_par_ks_blocks(&mut self, blocks: &mut ParBlocks<Self>) { |
45 | 2.76k | let mut tmp = ParBlocks::<Self>::default(); |
46 | 22.1k | for block in tmp.iter_mut() { |
47 | 22.1k | *block = F::next_block(self.ctr_nonce); |
48 | 22.1k | } |
49 | 2.76k | self.backend.proc_par_blocks((&tmp, blocks).into()); |
50 | 2.76k | } <ctr::backend::Backend<ctr::flavors::ctr32::Ctr32BE, aes::ni::Aes128BackEnc> as cipher::stream_core::StreamBackend>::gen_par_ks_blocks Line | Count | Source | 44 | 2.76k | fn gen_par_ks_blocks(&mut self, blocks: &mut ParBlocks<Self>) { | 45 | 2.76k | let mut tmp = ParBlocks::<Self>::default(); | 46 | 22.1k | for block in tmp.iter_mut() { | 47 | 22.1k | *block = F::next_block(self.ctr_nonce); | 48 | 22.1k | } | 49 | 2.76k | self.backend.proc_par_blocks((&tmp, blocks).into()); | 50 | 2.76k | } |
Unexecuted instantiation: <ctr::backend::Backend<ctr::flavors::ctr32::Ctr32BE, aes::soft::Aes128BackEnc> as cipher::stream_core::StreamBackend>::gen_par_ks_blocks |
51 | | } |
52 | | |
53 | | pub(crate) struct Closure<'a, F, BS, SC> |
54 | | where |
55 | | F: CtrFlavor<BS>, |
56 | | BS: ArrayLength<u8>, |
57 | | SC: StreamClosure<BlockSize = BS>, |
58 | | { |
59 | | pub(crate) ctr_nonce: &'a mut F::CtrNonce, |
60 | | pub(crate) f: SC, |
61 | | } |
62 | | |
63 | | impl<'a, F, BS, SC> BlockSizeUser for Closure<'a, F, BS, SC> |
64 | | where |
65 | | F: CtrFlavor<BS>, |
66 | | BS: ArrayLength<u8>, |
67 | | SC: StreamClosure<BlockSize = BS>, |
68 | | { |
69 | | type BlockSize = BS; |
70 | | } |
71 | | |
72 | | impl<'a, F, BS, SC> BlockClosure for Closure<'a, F, BS, SC> |
73 | | where |
74 | | F: CtrFlavor<BS>, |
75 | | BS: ArrayLength<u8>, |
76 | | SC: StreamClosure<BlockSize = BS>, |
77 | | { |
78 | | #[inline(always)] |
79 | 2.09k | fn call<B: BlockBackend<BlockSize = BS>>(self, backend: &mut B) { |
80 | 2.09k | let Self { ctr_nonce, f } = self; |
81 | 2.09k | f.call(&mut Backend::<F, B> { ctr_nonce, backend }) |
82 | 2.09k | } <ctr::backend::Closure<ctr::flavors::ctr32::Ctr32BE, typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UTerm, typenum::bit::B1>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, cipher::stream_core::WriteBlockCtx<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UTerm, typenum::bit::B1>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>>> as cipher::block::BlockClosure>::call::<aes::ni::Aes128BackEnc> Line | Count | Source | 79 | 1.21k | fn call<B: BlockBackend<BlockSize = BS>>(self, backend: &mut B) { | 80 | 1.21k | let Self { ctr_nonce, f } = self; | 81 | 1.21k | f.call(&mut Backend::<F, B> { ctr_nonce, backend }) | 82 | 1.21k | } |
Unexecuted instantiation: <ctr::backend::Closure<ctr::flavors::ctr32::Ctr32BE, typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UTerm, typenum::bit::B1>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, cipher::stream_core::WriteBlockCtx<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UTerm, typenum::bit::B1>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>>> as cipher::block::BlockClosure>::call::<aes::soft::Aes128BackEnc> <ctr::backend::Closure<ctr::flavors::ctr32::Ctr32BE, typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UTerm, typenum::bit::B1>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, cipher::stream_core::ApplyBlocksCtx<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UTerm, typenum::bit::B1>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>>> as cipher::block::BlockClosure>::call::<aes::ni::Aes128BackEnc> Line | Count | Source | 79 | 878 | fn call<B: BlockBackend<BlockSize = BS>>(self, backend: &mut B) { | 80 | 878 | let Self { ctr_nonce, f } = self; | 81 | 878 | f.call(&mut Backend::<F, B> { ctr_nonce, backend }) | 82 | 878 | } |
Unexecuted instantiation: <ctr::backend::Closure<ctr::flavors::ctr32::Ctr32BE, typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UTerm, typenum::bit::B1>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, cipher::stream_core::ApplyBlocksCtx<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UTerm, typenum::bit::B1>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>>> as cipher::block::BlockClosure>::call::<aes::soft::Aes128BackEnc> |
83 | | } |