Age old ticket, and applied in all current release branches as well as master as far as I can see. Time to close.
Vid Thu, 13 Jan 2011 kl. 18.01.15, skrev int...@intron.ac: > In aes_core.c, Te4 is an array of u8. When its members are to be > shifted, those members need to be cast to u32 explicitly. This is > necessary especially in 8/16-bit embedded environments such as SDCC > (http://sdcc.sourceforge.net/). > > My patch: > > Index: aes_core.c > =================================================================== > RCS file: /v/openssl/cvs/openssl/crypto/aes/aes_core.c,v > retrieving revision 1.10 > diff -u -r1.10 aes_core.c > --- aes_core.c 25 Jan 2007 20:47:00 -0000 1.10 > +++ aes_core.c 13 Jan 2011 14:27:14 -0000 > @@ -1229,10 +1229,10 @@ > while (1) { > temp = rk[3]; > rk[4] = rk[0] ^ > - (Te4[(temp >> 16) & 0xff] << 24) ^ > - (Te4[(temp >> 8) & 0xff] << 16) ^ > - (Te4[(temp ) & 0xff] << 8) ^ > - (Te4[(temp >> 24) ]) ^ > + ((u32)Te4[(temp >> 16) & 0xff] << 24) ^ > + ((u32)Te4[(temp >> 8) & 0xff] << 16) ^ > + ((u32)Te4[(temp ) & 0xff] << 8) ^ > + ((u32)Te4[(temp >> 24) ]) ^ > rcon[i]; > rk[5] = rk[1] ^ rk[4]; > rk[6] = rk[2] ^ rk[5]; > @@ -1249,10 +1249,10 @@ > while (1) { > temp = rk[ 5]; > rk[ 6] = rk[ 0] ^ > - (Te4[(temp >> 16) & 0xff] << 24) ^ > - (Te4[(temp >> 8) & 0xff] << 16) ^ > - (Te4[(temp ) & 0xff] << 8) ^ > - (Te4[(temp >> 24) ]) ^ > + ((u32)Te4[(temp >> 16) & 0xff] << 24) ^ > + ((u32)Te4[(temp >> 8) & 0xff] << 16) ^ > + ((u32)Te4[(temp ) & 0xff] << 8) ^ > + ((u32)Te4[(temp >> 24) ]) ^ > rcon[i]; > rk[ 7] = rk[ 1] ^ rk[ 6]; > rk[ 8] = rk[ 2] ^ rk[ 7]; > @@ -1271,10 +1271,10 @@ > while (1) { > temp = rk[ 7]; > rk[ 8] = rk[ 0] ^ > - (Te4[(temp >> 16) & 0xff] << 24) ^ > - (Te4[(temp >> 8) & 0xff] << 16) ^ > - (Te4[(temp ) & 0xff] << 8) ^ > - (Te4[(temp >> 24) ]) ^ > + ((u32)Te4[(temp >> 16) & 0xff] << 24) ^ > + ((u32)Te4[(temp >> 8) & 0xff] << 16) ^ > + ((u32)Te4[(temp ) & 0xff] << 8) ^ > + ((u32)Te4[(temp >> 24) ]) ^ > rcon[i]; > rk[ 9] = rk[ 1] ^ rk[ 8]; > rk[10] = rk[ 2] ^ rk[ 9]; > @@ -1284,10 +1284,10 @@ > } > temp = rk[11]; > rk[12] = rk[ 4] ^ > - (Te4[(temp >> 24) ] << 24) ^ > - (Te4[(temp >> 16) & 0xff] << 16) ^ > - (Te4[(temp >> 8) & 0xff] << 8) ^ > - (Te4[(temp ) & 0xff]); > + ((u32)Te4[(temp >> 24) ] << 24) ^ > + ((u32)Te4[(temp >> 16) & 0xff] << 16) ^ > + ((u32)Te4[(temp >> 8) & 0xff] << 8) ^ > + ((u32)Te4[(temp ) & 0xff]); > rk[13] = rk[ 5] ^ rk[12]; > rk[14] = rk[ 6] ^ rk[13]; > rk[15] = rk[ 7] ^ rk[14]; > > > ------------------------------------------------------------------------ > From Beijing, China -- Richard Levitte levi...@openssl.org -- Ticket here: http://rt.openssl.org/Ticket/Display.html?id=2431 Please log in as guest with password guest if prompted -- openssl-dev mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev