diff options
author | Andy Polyakov <appro@openssl.org> | 2011-05-04 20:57:43 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2011-05-04 20:57:43 +0000 |
commit | c7d0d0ae09fac5c2656ef5a2e635db12025921c6 (patch) | |
tree | 0ef6f3f2ae7505d01ef1a53f04b4c0bb19400057 | |
parent | c9adde0699c140840572f3bae976b8bae94fc7af (diff) |
xts128.c: minor optimizaton.
-rw-r--r-- | crypto/modes/xts128.c | 26 |
1 files changed, 14 insertions, 12 deletions
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); |