Const-qualify all read-only pointers

This commit is contained in:
Torfinn Berset 2019-02-21 09:31:53 +01:00
parent 597569f2ed
commit 7a35660a00
2 changed files with 11 additions and 11 deletions

18
aes.c
View File

@ -240,7 +240,7 @@ void AES_ctx_set_iv(struct AES_ctx* ctx, const uint8_t* iv)
// This function adds the round key to state. // This function adds the round key to state.
// The round key is added to the state by an XOR function. // The round key is added to the state by an XOR function.
static void AddRoundKey(uint8_t round,state_t* state,uint8_t* RoundKey) static void AddRoundKey(uint8_t round, state_t* state, const uint8_t* RoundKey)
{ {
uint8_t i,j; uint8_t i,j;
for (i = 0; i < 4; ++i) for (i = 0; i < 4; ++i)
@ -408,7 +408,7 @@ static void InvShiftRows(state_t* state)
#endif // #if (defined(CBC) && CBC == 1) || (defined(ECB) && ECB == 1) #endif // #if (defined(CBC) && CBC == 1) || (defined(ECB) && ECB == 1)
// Cipher is the main function that encrypts the PlainText. // Cipher is the main function that encrypts the PlainText.
static void Cipher(state_t* state, uint8_t* RoundKey) static void Cipher(state_t* state, const uint8_t* RoundKey)
{ {
uint8_t round = 0; uint8_t round = 0;
@ -434,7 +434,7 @@ static void Cipher(state_t* state, uint8_t* RoundKey)
} }
#if (defined(CBC) && CBC == 1) || (defined(ECB) && ECB == 1) #if (defined(CBC) && CBC == 1) || (defined(ECB) && ECB == 1)
static void InvCipher(state_t* state,uint8_t* RoundKey) static void InvCipher(state_t* state, const uint8_t* RoundKey)
{ {
uint8_t round = 0; uint8_t round = 0;
@ -466,13 +466,13 @@ static void InvCipher(state_t* state,uint8_t* RoundKey)
#if defined(ECB) && (ECB == 1) #if defined(ECB) && (ECB == 1)
void AES_ECB_encrypt(struct AES_ctx *ctx, uint8_t* buf) void AES_ECB_encrypt(const struct AES_ctx *ctx, uint8_t* buf)
{ {
// The next function call encrypts the PlainText with the Key using AES algorithm. // The next function call encrypts the PlainText with the Key using AES algorithm.
Cipher((state_t*)buf, ctx->RoundKey); Cipher((state_t*)buf, ctx->RoundKey);
} }
void AES_ECB_decrypt(struct AES_ctx* ctx, uint8_t* buf) void AES_ECB_decrypt(const struct AES_ctx* ctx, uint8_t* buf)
{ {
// The next function call decrypts the PlainText with the Key using AES algorithm. // The next function call decrypts the PlainText with the Key using AES algorithm.
InvCipher((state_t*)buf, ctx->RoundKey); InvCipher((state_t*)buf, ctx->RoundKey);
@ -488,7 +488,7 @@ void AES_ECB_decrypt(struct AES_ctx* ctx, uint8_t* buf)
#if defined(CBC) && (CBC == 1) #if defined(CBC) && (CBC == 1)
static void XorWithIv(uint8_t* buf, uint8_t* Iv) static void XorWithIv(uint8_t* buf, const uint8_t* Iv)
{ {
uint8_t i; uint8_t i;
for (i = 0; i < AES_BLOCKLEN; ++i) // The block in AES is always 128bit no matter the key size for (i = 0; i < AES_BLOCKLEN; ++i) // The block in AES is always 128bit no matter the key size
@ -497,7 +497,7 @@ static void XorWithIv(uint8_t* buf, uint8_t* Iv)
} }
} }
void AES_CBC_encrypt_buffer(struct AES_ctx *ctx,uint8_t* buf, uint32_t length) void AES_CBC_encrypt_buffer(struct AES_ctx *ctx, uint8_t* buf, uint32_t length)
{ {
uintptr_t i; uintptr_t i;
uint8_t *Iv = ctx->Iv; uint8_t *Iv = ctx->Iv;
@ -552,9 +552,9 @@ void AES_CTR_xcrypt_buffer(struct AES_ctx* ctx, uint8_t* buf, uint32_t length)
/* Increment Iv and handle overflow */ /* Increment Iv and handle overflow */
for (bi = (AES_BLOCKLEN - 1); bi >= 0; --bi) for (bi = (AES_BLOCKLEN - 1); bi >= 0; --bi)
{ {
/* inc will owerflow */ /* inc will overflow */
if (ctx->Iv[bi] == 255) if (ctx->Iv[bi] == 255)
{ {
ctx->Iv[bi] = 0; ctx->Iv[bi] = 0;
continue; continue;
} }

4
aes.h
View File

@ -58,8 +58,8 @@ void AES_ctx_set_iv(struct AES_ctx* ctx, const uint8_t* iv);
// buffer size is exactly AES_BLOCKLEN bytes; // buffer size is exactly AES_BLOCKLEN bytes;
// you need only AES_init_ctx as IV is not used in ECB // you need only AES_init_ctx as IV is not used in ECB
// NB: ECB is considered insecure for most uses // NB: ECB is considered insecure for most uses
void AES_ECB_encrypt(struct AES_ctx* ctx, uint8_t* buf); void AES_ECB_encrypt(const struct AES_ctx* ctx, uint8_t* buf);
void AES_ECB_decrypt(struct AES_ctx* ctx, uint8_t* buf); void AES_ECB_decrypt(const struct AES_ctx* ctx, uint8_t* buf);
#endif // #if defined(ECB) && (ECB == !) #endif // #if defined(ECB) && (ECB == !)