Sync aes_ctr.c with HEAD.

This commit is contained in:
Andy Polyakov 2004-08-23 22:28:27 +00:00
parent 15902f8341
commit 4157fae6fe

View File

@ -59,7 +59,7 @@
#include <openssl/aes.h> #include <openssl/aes.h>
#include "aes_locl.h" #include "aes_locl.h"
/* NOTE: CTR mode is big-endian. The rest of the AES code /* NOTE: the IV/counter CTR mode is big-endian. The rest of the AES code
* is endian-neutral. */ * is endian-neutral. */
/* increment counter (128-bit int) by 1 */ /* increment counter (128-bit int) by 1 */
@ -67,61 +67,36 @@ static void AES_ctr128_inc(unsigned char *counter) {
unsigned long c; unsigned long c;
/* Grab bottom dword of counter and increment */ /* Grab bottom dword of counter and increment */
#ifdef L_ENDIAN
c = GETU32(counter + 0);
c++;
PUTU32(counter + 0, c);
#else
c = GETU32(counter + 12); c = GETU32(counter + 12);
c++; c++; c &= 0xFFFFFFFF;
PUTU32(counter + 12, c); PUTU32(counter + 12, c);
#endif
/* if no overflow, we're done */ /* if no overflow, we're done */
if (c) if (c)
return; return;
/* Grab 1st dword of counter and increment */ /* Grab 1st dword of counter and increment */
#ifdef L_ENDIAN
c = GETU32(counter + 4);
c++;
PUTU32(counter + 4, c);
#else
c = GETU32(counter + 8); c = GETU32(counter + 8);
c++; c++; c &= 0xFFFFFFFF;
PUTU32(counter + 8, c); PUTU32(counter + 8, c);
#endif
/* if no overflow, we're done */ /* if no overflow, we're done */
if (c) if (c)
return; return;
/* Grab 2nd dword of counter and increment */ /* Grab 2nd dword of counter and increment */
#ifdef L_ENDIAN
c = GETU32(counter + 8);
c++;
PUTU32(counter + 8, c);
#else
c = GETU32(counter + 4); c = GETU32(counter + 4);
c++; c++; c &= 0xFFFFFFFF;
PUTU32(counter + 4, c); PUTU32(counter + 4, c);
#endif
/* if no overflow, we're done */ /* if no overflow, we're done */
if (c) if (c)
return; return;
/* Grab top dword of counter and increment */ /* Grab top dword of counter and increment */
#ifdef L_ENDIAN
c = GETU32(counter + 12);
c++;
PUTU32(counter + 12, c);
#else
c = GETU32(counter + 0); c = GETU32(counter + 0);
c++; c++; c &= 0xFFFFFFFF;
PUTU32(counter + 0, c); PUTU32(counter + 0, c);
#endif
} }
/* The input encrypted as though 128bit counter mode is being /* The input encrypted as though 128bit counter mode is being