summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2011-05-04 20:57:43 +0000
committerAndy Polyakov <appro@openssl.org>2011-05-04 20:57:43 +0000
commitc7d0d0ae09fac5c2656ef5a2e635db12025921c6 (patch)
tree0ef6f3f2ae7505d01ef1a53f04b4c0bb19400057
parentc9adde0699c140840572f3bae976b8bae94fc7af (diff)
xts128.c: minor optimizaton.
-rw-r--r--crypto/modes/xts128.c26
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);