From: Andy Polyakov Date: Wed, 4 May 2011 20:57:43 +0000 (+0000) Subject: xts128.c: minor optimizaton. X-Git-Tag: OpenSSL-fips-2_0-rc1~472 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c7d0d0ae09fac5c2656ef5a2e635db12025921c6;p=openssl xts128.c: minor optimizaton. --- diff --git a/crypto/modes/xts128.c b/crypto/modes/xts128.c index e7f1641070..9cf27a25e9 100644 --- a/crypto/modes/xts128.c +++ b/crypto/modes/xts128.c @@ -107,14 +107,15 @@ int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char iv[16], tweak.u[1] = (tweak.u[1]<<1)|carry; } else { - unsigned int carry,c; + size_t c; - for (carry=0,i=0;i<16;++i) { - c = tweak.c[i]; - tweak.c[i] = (c<<1)|carry; - carry = c>>7; + for (c=0,i=0;i<16;++i) { + /*+ substitutes for |, because c is 1 bit */ + c += ((size_t)tweak.c[i])<<1; + tweak.c[i] = (u8)c; + c = c>>8; } - tweak.c[0] ^= 0x87&(0-carry); + tweak.c[0] ^= (u8)(0x87&(0-c)); } } if (enc) { @@ -142,14 +143,15 @@ int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char iv[16], tweak1.u[1] = (tweak.u[1]<<1)|carry; } else { - unsigned int carry,c; + size_t c; - for (carry=0,i=0;i<16;++i) { - c = tweak.c[i]; - tweak1.c[i] = (c<<1)|carry; - carry = c>>7; + for (c=0,i=0;i<16;++i) { + /*+ substitutes for |, because c is 1 bit */ + c += ((size_t)tweak.c[i])<<1; + tweak1.c[i] = (u8)c; + c = c>>8; } - tweak1.c[0] ^= 0x87&(0-carry); + tweak1.c[0] ^= (u8)(0x87&(0-c)); } #if defined(STRICT_ALIGNMENT) memcpy(scratch.c,inp,16);