- Small code rewrite

diff --git a/library/aes.c b/library/aes.c
index c355bfc..2f52202 100644
--- a/library/aes.c
+++ b/library/aes.c
@@ -888,7 +888,7 @@
                        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 @@
         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 496facf..34b8f29 100644
--- a/library/camellia.c
+++ b/library/camellia.c
@@ -633,7 +633,7 @@
                        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 @@
         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 882d686..1de7f05 100644
--- a/library/ctr_drbg.c
+++ b/library/ctr_drbg.c
@@ -185,7 +185,7 @@
 {
     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 @@
         /*
          * 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 @@
     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 @@
         /*
          * 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