@@ -64,6 +64,18 @@ void aes128_enc_single(const uint8_t* key, void* data){
64
64
aes128_enc (data , & ctx );
65
65
}
66
66
67
+ // encrypt multiple blocks of 128bit data, data_len must be mod 16
68
+ // key is assumed to be 128bit thus 16 uint8_t's
69
+ void aes128_enc_multiple (const uint8_t * key , void * data , const uint16_t data_len ){
70
+ if (data_len % 16 != 0 ) {
71
+ return ;
72
+ }
73
+ aes128_ctx_t ctx ;
74
+ aes128_init (key , & ctx );
75
+ for (int i = 0 ;i < data_len /16 ;i ++ )
76
+ aes128_enc (& data [i * 16 ], & ctx );
77
+ }
78
+
67
79
// encrypt single 128bit block. data is assumed to be 16 uint8_t's
68
80
// key is assumed to be 256bit thus 32 uint8_t's
69
81
void aes256_enc_single (const uint8_t * key , void * data ){
@@ -72,6 +84,17 @@ void aes256_enc_single(const uint8_t* key, void* data){
72
84
aes256_enc (data , & ctx );
73
85
}
74
86
87
+ // encrypt multiple blocks of 128bit data, data_len but be mod 16
88
+ // key is assumed to be 256bit thus 32 uint8_t's
89
+ void aes256_enc_multiple (const uint8_t * key , void * data , const uint16_t data_len ){
90
+ if (data_len % 16 != 0 ) {
91
+ return ;
92
+ }
93
+ aes256_ctx_t ctx ;
94
+ aes256_init (key , & ctx );
95
+ for (int i = 0 ;i < data_len /16 ;i ++ )
96
+ aes256_enc (& data [i * 16 ], & ctx );
97
+ }
75
98
76
99
// prepare an encrypted to use for encrypting multiple blocks lateron.
77
100
// key and iv are assumed to be both 128bit thus 16 uint8_t's
@@ -179,6 +202,18 @@ void aes128_dec_single(const uint8_t* key, void* data){
179
202
aes128_dec (data , & ctx );
180
203
}
181
204
205
+ // decrypt multiple blocks of 128bit data, data_len must be mod 16
206
+ // key is assumed to be 128bit thus 16 uint8_t's
207
+ void aes128_dec_multiple (const uint8_t * key , void * data , const uint16_t data_len ){
208
+ if (data_len % 16 != 0 ) {
209
+ return ;
210
+ }
211
+ aes128_ctx_t ctx ;
212
+ aes128_init (key , & ctx );
213
+ for (int i = 0 ;i < data_len /16 ;i ++ )
214
+ aes128_dec (& data [i * 16 ], & ctx );
215
+ }
216
+
182
217
// decrypt single 128bit block. data is assumed to be 16 uint8_t's
183
218
// key is assumed to be 256bit thus 32 uint8_t's
184
219
void aes256_dec_single (const uint8_t * key , void * data ){
@@ -187,6 +222,18 @@ void aes256_dec_single(const uint8_t* key, void* data){
187
222
aes256_dec (data , & ctx );
188
223
}
189
224
225
+ // decrypt multiple blocks of 128bit data, data_len but be mod 16
226
+ // key is assumed to be 256bit thus 32 uint8_t's
227
+ void aes256_dec_multiple (const uint8_t * key , void * data , const uint16_t data_len ){
228
+ if (data_len % 16 != 0 ) {
229
+ return ;
230
+ }
231
+ aes256_ctx_t ctx ;
232
+ aes256_init (key , & ctx );
233
+ for (int i = 0 ;i < data_len /16 ;i ++ )
234
+ aes256_dec (& data [i * 16 ], & ctx );
235
+ }
236
+
190
237
191
238
// prepare an decrypted to use for decrypting multiple blocks lateron.
192
239
// key and iv are assumed to be both 128bit thus 16 uint8_t's
0 commit comments