Skip to content

Commit 797b16a

Browse files
committed
Fixes issue DavyLandman#19 while also keeping a void pointer
1 parent d232217 commit 797b16a

File tree

1 file changed

+28
-8
lines changed

1 file changed

+28
-8
lines changed

AESLib.c

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,13 @@ void aes128_enc_multiple(const uint8_t* key, void* data, const uint16_t data_len
7272
}
7373
aes128_ctx_t ctx;
7474
aes128_init(key, &ctx);
75-
for(int i=0;i<data_len/16;i++)
76-
aes128_enc(&data[i*16], &ctx);
75+
76+
uint8_t* current = (uint8_t*)data;
77+
uint8_t* stop = current + data_len;
78+
while(current != stop){
79+
aes128_enc(current, &ctx);
80+
current += 16;
81+
}
7782
}
7883

7984
// encrypt single 128bit block. data is assumed to be 16 uint8_t's
@@ -92,8 +97,13 @@ void aes256_enc_multiple(const uint8_t* key, void* data, const uint16_t data_len
9297
}
9398
aes256_ctx_t ctx;
9499
aes256_init(key, &ctx);
95-
for(int i=0;i<data_len/16;i++)
96-
aes256_enc(&data[i*16], &ctx);
100+
101+
uint8_t* current = (uint8_t*)data;
102+
uint8_t* stop = current + data_len;
103+
while(current != stop){
104+
aes256_enc(current, &ctx);
105+
current += 16;
106+
}
97107
}
98108

99109
// prepare an encrypted to use for encrypting multiple blocks lateron.
@@ -210,8 +220,13 @@ void aes128_dec_multiple(const uint8_t* key, void* data, const uint16_t data_len
210220
}
211221
aes128_ctx_t ctx;
212222
aes128_init(key, &ctx);
213-
for(int i=0;i<data_len/16;i++)
214-
aes128_dec(&data[i*16], &ctx);
223+
224+
uint8_t* current = (uint8_t*)data;
225+
uint8_t* stop = current + data_len;
226+
while(current != stop) {
227+
aes128_dec(current, &ctx);
228+
current += 16;
229+
}
215230
}
216231

217232
// decrypt single 128bit block. data is assumed to be 16 uint8_t's
@@ -230,8 +245,13 @@ void aes256_dec_multiple(const uint8_t* key, void* data, const uint16_t data_len
230245
}
231246
aes256_ctx_t ctx;
232247
aes256_init(key, &ctx);
233-
for(int i=0;i<data_len/16;i++)
234-
aes256_dec(&data[i*16], &ctx);
248+
249+
uint8_t* current = (uint8_t*)data;
250+
uint8_t* stop = current + data_len;
251+
while(current != stop) {
252+
aes256_dec(current, &ctx);
253+
current += 16;
254+
}
235255
}
236256

237257

0 commit comments

Comments
 (0)