From 369e14bbf168ddb0d97e1ee9ddf40ed3a095d10d Mon Sep 17 00:00:00 2001
From: Paul Bakker
Date: Wed, 18 Apr 2012 14:16:09 +0000
Subject: [PATCH] - Small code rewrite
---
library/aes.c | 11 ++++-------
library/camellia.c | 11 ++++-------
library/ctr_drbg.c | 20 ++++++++------------
3 files changed, 16 insertions(+), 26 deletions(-)
diff --git a/library/aes.c b/library/aes.c
index c355bfcbb..2f5220280 100644
--- a/library/aes.c
+++ b/library/aes.c
@@ -888,7 +888,7 @@ int aes_crypt_ctr( aes_context *ctx,
const unsigned char *input,
unsigned char *output )
{
- int c, i, cb;
+ int c, i;
size_t n = *nc_off;
while( length-- )
@@ -896,12 +896,9 @@ int aes_crypt_ctr( aes_context *ctx,
if( n == 0 ) {
aes_crypt_ecb( ctx, AES_ENCRYPT, nonce_counter, stream_block );
- i = 15;
- do {
- nonce_counter[i]++;
- cb = nonce_counter[i] == 0;
- } while( i-- && cb );
-
+ for( i = 16; i > 0; i-- )
+ if( ++nonce_counter[i - 1] != 0 )
+ break;
}
c = *input++;
*output++ = (unsigned char)( c ^ stream_block[n] );
diff --git a/library/camellia.c b/library/camellia.c
index 496facfd0..34b8f294f 100644
--- a/library/camellia.c
+++ b/library/camellia.c
@@ -633,7 +633,7 @@ int camellia_crypt_ctr( camellia_context *ctx,
const unsigned char *input,
unsigned char *output )
{
- int c, i, cb;
+ int c, i;
size_t n = *nc_off;
while( length-- )
@@ -641,12 +641,9 @@ int camellia_crypt_ctr( camellia_context *ctx,
if( n == 0 ) {
camellia_crypt_ecb( ctx, CAMELLIA_ENCRYPT, nonce_counter, stream_block );
- i = 15;
- do {
- nonce_counter[i]++;
- cb = nonce_counter[i] == 0;
- } while( i-- && cb );
-
+ for( i = 16; i > 0; i-- )
+ if( ++nonce_counter[i - 1] != 0 )
+ break;
}
c = *input++;
*output++ = (unsigned char)( c ^ stream_block[n] );
diff --git a/library/ctr_drbg.c b/library/ctr_drbg.c
index 882d68618..1de7f05e9 100644
--- a/library/ctr_drbg.c
+++ b/library/ctr_drbg.c
@@ -185,7 +185,7 @@ int ctr_drbg_update_internal( ctr_drbg_context *ctx,
{
unsigned char tmp[CTR_DRBG_SEEDLEN];
unsigned char *p = tmp;
- int cb, i, j;
+ int i, j;
memset( tmp, 0, CTR_DRBG_SEEDLEN );
@@ -194,11 +194,9 @@ int ctr_drbg_update_internal( ctr_drbg_context *ctx,
/*
* Increase counter
*/
- i = CTR_DRBG_BLOCKSIZE - 1;
- do {
- ctx->counter[i]++;
- cb = ctx->counter[i] == 0;
- } while( i-- && cb );
+ for( i = CTR_DRBG_BLOCKSIZE; i >= 0; i-- )
+ if( ++ctx->counter[i - 1] != 0 )
+ break;
/*
* Crypt counter block
@@ -286,7 +284,7 @@ int ctr_drbg_random_with_add( void *p_rng,
unsigned char add_input[CTR_DRBG_SEEDLEN];
unsigned char *p = output;
unsigned char tmp[CTR_DRBG_BLOCKSIZE];
- int cb, i;
+ int i;
size_t use_len;
if( output_len > CTR_DRBG_MAX_REQUEST )
@@ -317,11 +315,9 @@ int ctr_drbg_random_with_add( void *p_rng,
/*
* Increase counter
*/
- i = CTR_DRBG_BLOCKSIZE - 1;
- do {
- ctx->counter[i]++;
- cb = ctx->counter[i] == 0;
- } while( i-- && cb );
+ for( i = CTR_DRBG_BLOCKSIZE; i > 0; i-- )
+ if( ++ctx->counter[i - 1] != 0 )
+ break;
/*
* Crypt counter block