提交 c7d0d0ae 编写于 作者: A Andy Polyakov

xts128.c: minor optimizaton.

上级 c9adde06
...@@ -107,14 +107,15 @@ int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char iv[16], ...@@ -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; tweak.u[1] = (tweak.u[1]<<1)|carry;
} }
else { else {
unsigned int carry,c; size_t c;
for (carry=0,i=0;i<16;++i) { for (c=0,i=0;i<16;++i) {
c = tweak.c[i]; /*+ substitutes for |, because c is 1 bit */
tweak.c[i] = (c<<1)|carry; c += ((size_t)tweak.c[i])<<1;
carry = c>>7; tweak.c[i] = (u8)c;
c = c>>8;
} }
tweak.c[0] ^= 0x87&(0-carry); tweak.c[0] ^= (u8)(0x87&(0-c));
} }
} }
if (enc) { if (enc) {
...@@ -142,14 +143,15 @@ int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char iv[16], ...@@ -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; tweak1.u[1] = (tweak.u[1]<<1)|carry;
} }
else { else {
unsigned int carry,c; size_t c;
for (carry=0,i=0;i<16;++i) { for (c=0,i=0;i<16;++i) {
c = tweak.c[i]; /*+ substitutes for |, because c is 1 bit */
tweak1.c[i] = (c<<1)|carry; c += ((size_t)tweak.c[i])<<1;
carry = c>>7; 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) #if defined(STRICT_ALIGNMENT)
memcpy(scratch.c,inp,16); memcpy(scratch.c,inp,16);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册