summaryrefslogtreecommitdiffstats
path: root/crypto/modes
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2015-12-02 16:25:08 +0100
committerAndy Polyakov <appro@openssl.org>2015-12-02 23:40:05 +0100
commit1bbea403842493aa7187aab5d3d3f26ae7874bd4 (patch)
tree3a469ab0079246bdc75d3f3de15db0e7287c7744 /crypto/modes
parent16b6081e0d96be87fa53b9932c7c589d7ad9edab (diff)
modes/ocb128.c: fix sanitizer warning.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'crypto/modes')
-rw-r--r--crypto/modes/ocb128.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/crypto/modes/ocb128.c b/crypto/modes/ocb128.c
index d49aa6ede9..620675541d 100644
--- a/crypto/modes/ocb128.c
+++ b/crypto/modes/ocb128.c
@@ -78,7 +78,8 @@ static u32 ocb_ntz(u64 n)
/*
* Shift a block of 16 bytes left by shift bits
*/
-static void ocb_block_lshift(OCB_BLOCK *in, size_t shift, OCB_BLOCK *out)
+static void ocb_block_lshift(const unsigned char *in, size_t shift,
+ unsigned char *out)
{
unsigned char shift_mask;
int i;
@@ -88,13 +89,13 @@ static void ocb_block_lshift(OCB_BLOCK *in, size_t shift, OCB_BLOCK *out)
shift_mask <<= (8 - shift);
for (i = 15; i >= 0; i--) {
if (i > 0) {
- mask[i - 1] = in->c[i] & shift_mask;
+ mask[i - 1] = in[i] & shift_mask;
mask[i - 1] >>= 8 - shift;
}
- out->c[i] = in->c[i] << shift;
+ out[i] = in[i] << shift;
if (i != 15) {
- out->c[i] ^= mask[i];
+ out[i] ^= mask[i];
}
}
}
@@ -114,7 +115,7 @@ static void ocb_double(OCB_BLOCK *in, OCB_BLOCK *out)
mask >>= 7;
mask *= 135;
- ocb_block_lshift(in, 1, out);
+ ocb_block_lshift(in->c, 1, out->c);
out->c[15] ^= mask;
}
@@ -307,8 +308,7 @@ int CRYPTO_ocb128_setiv(OCB128_CONTEXT *ctx, const unsigned char *iv,
/* Offset_0 = Stretch[1+bottom..128+bottom] */
shift = bottom % 8;
- ocb_block_lshift((OCB_BLOCK *)(stretch + (bottom / 8)), shift,
- &ctx->offset);
+ ocb_block_lshift(stretch + (bottom / 8), shift, ctx->offset.c);
mask = 0xff;
mask <<= 8 - shift;
ctx->offset.c[15] |=