@@ -38,7 +38,7 @@ use cipher::{
3838 consts:: { U16 , U24 , U32 , U8 } ,
3939 crypto_common:: AlgorithmName ,
4040 generic_array:: { typenum:: Unsigned , GenericArray } ,
41- inout:: { InOut , InOutBuf , InSrc , InTmpOutBuf } ,
41+ inout:: { InOut , InCtrl , ChunkProc } ,
4242 BlockCipher , BlockDecrypt , BlockEncrypt , BlockSizeUser , KeyInit , KeySizeUser ,
4343} ;
4444use core:: fmt;
@@ -97,23 +97,23 @@ macro_rules! define_aes_impl {
9797 }
9898
9999 #[ inline]
100- fn encrypt_blocks_with_pre (
100+ fn encrypt_blocks_with_gen< B : ChunkProc < Block >> (
101101 & self ,
102- blocks: InOutBuf < ' _ , Block > ,
103- pre_fn : impl FnMut ( InTmpOutBuf < ' _ , Block > ) -> InSrc ,
104- post_fn : impl FnMut ( InTmpOutBuf < ' _ , Block > ) ,
102+ blocks: B ,
103+ gen_in : impl FnMut ( & mut [ Block ] ) -> InCtrl ,
104+ body : impl FnMut ( B , & mut [ Block ] ) ,
105105 ) {
106106 #[ target_feature( enable = "aes" ) ]
107- unsafe fn inner(
107+ unsafe fn inner< B : ChunkProc < Block >> (
108108 keys: & $module:: RoundKeys ,
109- blocks: InOutBuf < ' _ , Block > ,
110- pre_fn : impl FnMut ( InTmpOutBuf < ' _ , Block > ) -> InSrc ,
111- post_fn : impl FnMut ( InTmpOutBuf < ' _ , Block > ) ,
109+ blocks: B ,
110+ gen_in : impl FnMut ( & mut [ Block ] ) -> InCtrl ,
111+ body : impl FnMut ( B , & mut [ Block ] ) ,
112112 ) {
113113 blocks. process_chunks:: <U8 , _, _, _, _, _>(
114114 & keys,
115- pre_fn ,
116- post_fn ,
115+ gen_in ,
116+ body ,
117117 |keys, chunk| $module:: encrypt8( keys, chunk) ,
118118 |keys, chunk| {
119119 for block in chunk {
@@ -126,7 +126,7 @@ macro_rules! define_aes_impl {
126126 // SAFETY: we enforce that this code is called only when
127127 // required target features were properly checked.
128128 unsafe {
129- inner( & self . encrypt_keys, blocks, pre_fn , post_fn ) ;
129+ inner( & self . encrypt_keys, blocks, gen_in , body ) ;
130130 }
131131 }
132132 }
@@ -142,23 +142,23 @@ macro_rules! define_aes_impl {
142142 }
143143
144144 #[ inline]
145- fn decrypt_blocks_with_pre (
145+ fn decrypt_blocks_with_gen< B : ChunkProc < Block >> (
146146 & self ,
147- blocks: InOutBuf < ' _ , Block > ,
148- pre_fn : impl FnMut ( InTmpOutBuf < ' _ , Block > ) -> InSrc ,
149- post_fn : impl FnMut ( InTmpOutBuf < ' _ , Block > ) ,
147+ blocks: B ,
148+ gen_in : impl FnMut ( & mut [ Block ] ) -> InCtrl ,
149+ body : impl FnMut ( B , & mut [ Block ] ) ,
150150 ) {
151151 #[ target_feature( enable = "aes" ) ]
152- unsafe fn inner(
152+ unsafe fn inner< B : ChunkProc < Block >> (
153153 keys: & $module:: RoundKeys ,
154- blocks: InOutBuf < ' _ , Block > ,
155- pre_fn : impl FnMut ( InTmpOutBuf < ' _ , Block > ) -> InSrc ,
156- post_fn : impl FnMut ( InTmpOutBuf < ' _ , Block > ) ,
154+ blocks: B ,
155+ gen_in : impl FnMut ( & mut [ Block ] ) -> InCtrl ,
156+ body : impl FnMut ( B , & mut [ Block ] ) ,
157157 ) {
158158 blocks. process_chunks:: <U8 , _, _, _, _, _>(
159159 & keys,
160- pre_fn ,
161- post_fn ,
160+ gen_in ,
161+ body ,
162162 |keys, chunk| $module:: decrypt8( keys, chunk) ,
163163 |keys, chunk| {
164164 for block in chunk {
@@ -171,7 +171,7 @@ macro_rules! define_aes_impl {
171171 // SAFETY: we enforce that this code is called only when
172172 // required target features were properly checked.
173173 unsafe {
174- inner( & self . decrypt_keys, blocks, pre_fn , post_fn ) ;
174+ inner( & self . decrypt_keys, blocks, gen_in , body ) ;
175175 }
176176 }
177177 }
0 commit comments