xts128.c: minor optimization and clarified prototype.
This commit is contained in:
parent
e382e4e603
commit
daaf5088fd
@ -121,5 +121,5 @@ size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len);
|
|||||||
|
|
||||||
typedef struct xts128_context XTS128_CONTEXT;
|
typedef struct xts128_context XTS128_CONTEXT;
|
||||||
|
|
||||||
int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char *iv,
|
int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char iv[16],
|
||||||
const unsigned char *inp, unsigned char *out, size_t len, int enc);
|
const unsigned char *inp, unsigned char *out, size_t len, int enc);
|
||||||
|
@ -58,7 +58,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char *iv,
|
int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char iv[16],
|
||||||
const unsigned char *inp, unsigned char *out,
|
const unsigned char *inp, unsigned char *out,
|
||||||
size_t len, int enc)
|
size_t len, int enc)
|
||||||
{
|
{
|
||||||
@ -84,9 +84,14 @@ int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char *iv,
|
|||||||
scratch.u[1] = ((u64*)inp)[1]^tweak.u[1];
|
scratch.u[1] = ((u64*)inp)[1]^tweak.u[1];
|
||||||
#endif
|
#endif
|
||||||
(*ctx->block1)(scratch.c,scratch.c,ctx->key1);
|
(*ctx->block1)(scratch.c,scratch.c,ctx->key1);
|
||||||
|
#if defined(STRICT_ALIGNMENT)
|
||||||
scratch.u[0] ^= tweak.u[0];
|
scratch.u[0] ^= tweak.u[0];
|
||||||
scratch.u[1] ^= tweak.u[1];
|
scratch.u[1] ^= tweak.u[1];
|
||||||
memcpy(out,scratch.c,16);
|
memcpy(out,scratch.c,16);
|
||||||
|
#else
|
||||||
|
((u64*)out)[0] = scratch.u[0]^tweak.u[0];
|
||||||
|
((u64*)out)[1] = scratch.u[1]^tweak.u[1];
|
||||||
|
#endif
|
||||||
inp += 16;
|
inp += 16;
|
||||||
out += 16;
|
out += 16;
|
||||||
len -= 16;
|
len -= 16;
|
||||||
@ -166,9 +171,14 @@ int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char *iv,
|
|||||||
scratch.u[0] ^= tweak.u[0];
|
scratch.u[0] ^= tweak.u[0];
|
||||||
scratch.u[1] ^= tweak.u[1];
|
scratch.u[1] ^= tweak.u[1];
|
||||||
(*ctx->block1)(scratch.c,scratch.c,ctx->key1);
|
(*ctx->block1)(scratch.c,scratch.c,ctx->key1);
|
||||||
|
#if defined(STRICT_ALIGNMENT)
|
||||||
scratch.u[0] ^= tweak.u[0];
|
scratch.u[0] ^= tweak.u[0];
|
||||||
scratch.u[1] ^= tweak.u[1];
|
scratch.u[1] ^= tweak.u[1];
|
||||||
memcpy (out,scratch.c,16);
|
memcpy (out,scratch.c,16);
|
||||||
|
#else
|
||||||
|
((u64*)out)[0] = scratch.u[0]^tweak.u[0];
|
||||||
|
((u64*)out)[1] = scratch.u[1]^tweak.u[1];
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user