diff options
author | Matt Caswell <matt@openssl.org> | 2015-01-22 03:40:55 +0000 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2015-01-22 09:20:09 +0000 |
commit | 0f113f3ee4d629ef9a4a30911b22b224772085e5 (patch) | |
tree | e014603da5aed1d0751f587a66d6e270b6bda3de /crypto/modes/ocb128.c | |
parent | 22b52164aaed31d6e93dbd2d397ace041360e6aa (diff) | |
download | openssl-0f113f3ee4d629ef9a4a30911b22b224772085e5.tar.gz |
Run util/openssl-format-source -v -c .
Reviewed-by: Tim Hudson <tjh@openssl.org>
Diffstat (limited to 'crypto/modes/ocb128.c')
-rw-r--r-- | crypto/modes/ocb128.c | 72 |
1 files changed, 40 insertions, 32 deletions
diff --git a/crypto/modes/ocb128.c b/crypto/modes/ocb128.c index ef8b2f4b66..a3224108c3 100644 --- a/crypto/modes/ocb128.c +++ b/crypto/modes/ocb128.c @@ -90,10 +90,10 @@ static void ocb_block_lshift(OCB_BLOCK *in, size_t shift, OCB_BLOCK *out) unsigned char mask[15]; union ublock locin; union ublock locout; - + locin.ocbblk = in; locout.ocbblk = out; - + shift_mask = 0xff; shift_mask <<= (8 - shift); for (i = 15; i >= 0; i--) { @@ -117,7 +117,7 @@ static void ocb_double(OCB_BLOCK *in, OCB_BLOCK *out) unsigned char mask; union ublock locin; union ublock locout; - + locin.ocbblk = in; locout.ocbblk = out; @@ -151,7 +151,7 @@ static void ocb_block_xor(const unsigned char *in1, * Lookup L_index in our lookup table. If we haven't already got it we need to * calculate it */ -static OCB_BLOCK *ocb_lookup_l(OCB128_CONTEXT * ctx, size_t index) +static OCB_BLOCK *ocb_lookup_l(OCB128_CONTEXT *ctx, size_t index) { if (index <= ctx->l_index) { return ctx->l + index; @@ -161,7 +161,8 @@ static OCB_BLOCK *ocb_lookup_l(OCB128_CONTEXT * ctx, size_t index) ctx->l_index++; if (ctx->l_index == ctx->max_l_index) { ctx->max_l_index *= 2; - ctx->l = OPENSSL_realloc(ctx->l, ctx->max_l_index * sizeof(OCB_BLOCK)); + ctx->l = + OPENSSL_realloc(ctx->l, ctx->max_l_index * sizeof(OCB_BLOCK)); if (!ctx->l) return NULL; } @@ -173,11 +174,12 @@ static OCB_BLOCK *ocb_lookup_l(OCB128_CONTEXT * ctx, size_t index) /* * Encrypt a block from |in| and store the result in |out| */ -static void ocb_encrypt(OCB128_CONTEXT *ctx, OCB_BLOCK *in, OCB_BLOCK *out, void *keyenc) +static void ocb_encrypt(OCB128_CONTEXT *ctx, OCB_BLOCK *in, OCB_BLOCK *out, + void *keyenc) { union ublock locin; union ublock locout; - + locin.ocbblk = in; locout.ocbblk = out; @@ -187,11 +189,12 @@ static void ocb_encrypt(OCB128_CONTEXT *ctx, OCB_BLOCK *in, OCB_BLOCK *out, void /* * Decrypt a block from |in| and store the result in |out| */ -static void ocb_decrypt(OCB128_CONTEXT *ctx, OCB_BLOCK *in, OCB_BLOCK *out, void *keydec) +static void ocb_decrypt(OCB128_CONTEXT *ctx, OCB_BLOCK *in, OCB_BLOCK *out, + void *keydec) { union ublock locin; union ublock locout; - + locin.ocbblk = in; locout.ocbblk = out; @@ -207,7 +210,7 @@ OCB128_CONTEXT *CRYPTO_ocb128_new(void *keyenc, void *keydec, OCB128_CONTEXT *octx; int ret; - if ((octx = (OCB128_CONTEXT *) OPENSSL_malloc(sizeof(OCB128_CONTEXT)))) { + if ((octx = (OCB128_CONTEXT *)OPENSSL_malloc(sizeof(OCB128_CONTEXT)))) { ret = CRYPTO_ocb128_init(octx, keyenc, keydec, encrypt, decrypt); if (ret) return octx; @@ -257,7 +260,7 @@ int CRYPTO_ocb128_init(OCB128_CONTEXT *ctx, void *keyenc, void *keydec, /* * Copy an OCB128_CONTEXT object */ -int CRYPTO_ocb128_copy_ctx(OCB128_CONTEXT * dest, OCB128_CONTEXT * src, +int CRYPTO_ocb128_copy_ctx(OCB128_CONTEXT *dest, OCB128_CONTEXT *src, void *keyenc, void *keydec) { memcpy(dest, src, sizeof(OCB128_CONTEXT)); @@ -277,14 +280,14 @@ int CRYPTO_ocb128_copy_ctx(OCB128_CONTEXT * dest, OCB128_CONTEXT * src, /* * Set the IV to be used for this operation. Must be 1 - 15 bytes. */ -int CRYPTO_ocb128_setiv(OCB128_CONTEXT * ctx, const unsigned char *iv, +int CRYPTO_ocb128_setiv(OCB128_CONTEXT *ctx, const unsigned char *iv, size_t len, size_t taglen) { unsigned char ktop[16], tmp[16], mask; unsigned char stretch[24], nonce[16]; size_t bottom, shift; union ublock offset; - + offset.ocbblk = &ctx->offset; /* @@ -315,10 +318,12 @@ 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((OCB_BLOCK *)(stretch + (bottom / 8)), shift, + &ctx->offset); mask = 0xff; mask <<= 8 - shift; - offset.chrblk[15] |= (*(stretch + (bottom / 8) + 16) & mask) >> (8 - shift); + offset.chrblk[15] |= + (*(stretch + (bottom / 8) + 16) & mask) >> (8 - shift); return 1; } @@ -327,7 +332,7 @@ int CRYPTO_ocb128_setiv(OCB128_CONTEXT * ctx, const unsigned char *iv, * Provide any AAD. This can be called multiple times. Only the final time can * have a partial block */ -int CRYPTO_ocb128_aad(OCB128_CONTEXT * ctx, const unsigned char *aad, +int CRYPTO_ocb128_aad(OCB128_CONTEXT *ctx, const unsigned char *aad, size_t len) { u64 all_num_blocks, num_blocks; @@ -335,7 +340,7 @@ int CRYPTO_ocb128_aad(OCB128_CONTEXT * ctx, const unsigned char *aad, OCB_BLOCK tmp1; OCB_BLOCK tmp2; int last_len; - + /* Calculate the number of blocks of AAD provided now, and so far */ num_blocks = len / 16; all_num_blocks = num_blocks + ctx->blocks_hashed; @@ -344,7 +349,7 @@ int CRYPTO_ocb128_aad(OCB128_CONTEXT * ctx, const unsigned char *aad, for (i = ctx->blocks_hashed + 1; i <= all_num_blocks; i++) { OCB_BLOCK *lookup; OCB_BLOCK *aad_block; - + /* Offset_i = Offset_{i-1} xor L_{ntz(i)} */ lookup = ocb_lookup_l(ctx, ocb_ntz(i)); if (!lookup) @@ -352,7 +357,7 @@ int CRYPTO_ocb128_aad(OCB128_CONTEXT * ctx, const unsigned char *aad, ocb_block16_xor(&ctx->offset_aad, lookup, &ctx->offset_aad); /* Sum_i = Sum_{i-1} xor ENCIPHER(K, A_i xor Offset_i) */ - aad_block = (OCB_BLOCK *) (aad + ((i - ctx->blocks_hashed - 1) * 16)); + aad_block = (OCB_BLOCK *)(aad + ((i - ctx->blocks_hashed - 1) * 16)); ocb_block16_xor(&ctx->offset_aad, aad_block, &tmp1); ocb_encrypt(ctx, &tmp1, &tmp2, ctx->keyenc); ocb_block16_xor(&ctx->sum, &tmp2, &ctx->sum); @@ -388,7 +393,7 @@ int CRYPTO_ocb128_aad(OCB128_CONTEXT * ctx, const unsigned char *aad, * Provide any data to be encrypted. This can be called multiple times. Only * the final time can have a partial block */ -int CRYPTO_ocb128_encrypt(OCB128_CONTEXT * ctx, +int CRYPTO_ocb128_encrypt(OCB128_CONTEXT *ctx, const unsigned char *in, unsigned char *out, size_t len) { @@ -411,7 +416,7 @@ int CRYPTO_ocb128_encrypt(OCB128_CONTEXT * ctx, OCB_BLOCK *lookup; OCB_BLOCK *inblock; OCB_BLOCK *outblock; - + /* Offset_i = Offset_{i-1} xor L_{ntz(i)} */ lookup = ocb_lookup_l(ctx, ocb_ntz(i)); if (!lookup) @@ -419,11 +424,11 @@ int CRYPTO_ocb128_encrypt(OCB128_CONTEXT * ctx, ocb_block16_xor(&ctx->offset, lookup, &ctx->offset); /* C_i = Offset_i xor ENCIPHER(K, P_i xor Offset_i) */ - inblock = (OCB_BLOCK *) (in + ((i - ctx->blocks_processed - 1) * 16)); + inblock = (OCB_BLOCK *)(in + ((i - ctx->blocks_processed - 1) * 16)); ocb_block16_xor(&ctx->offset, inblock, &tmp1); ocb_encrypt(ctx, &tmp1, &tmp2, ctx->keyenc); outblock = - (OCB_BLOCK *) (out + ((i - ctx->blocks_processed - 1) * 16)); + (OCB_BLOCK *)(out + ((i - ctx->blocks_processed - 1) * 16)); ocb_block16_xor(&ctx->offset, &tmp2, outblock); /* Checksum_i = Checksum_{i-1} xor P_i */ @@ -463,7 +468,7 @@ int CRYPTO_ocb128_encrypt(OCB128_CONTEXT * ctx, * Provide any data to be decrypted. This can be called multiple times. Only * the final time can have a partial block */ -int CRYPTO_ocb128_decrypt(OCB128_CONTEXT * ctx, +int CRYPTO_ocb128_decrypt(OCB128_CONTEXT *ctx, const unsigned char *in, unsigned char *out, size_t len) { @@ -484,7 +489,7 @@ int CRYPTO_ocb128_decrypt(OCB128_CONTEXT * ctx, for (i = ctx->blocks_processed + 1; i <= all_num_blocks; i++) { OCB_BLOCK *inblock; OCB_BLOCK *outblock; - + /* Offset_i = Offset_{i-1} xor L_{ntz(i)} */ OCB_BLOCK *lookup = ocb_lookup_l(ctx, ocb_ntz(i)); if (!lookup) @@ -492,10 +497,11 @@ int CRYPTO_ocb128_decrypt(OCB128_CONTEXT * ctx, ocb_block16_xor(&ctx->offset, lookup, &ctx->offset); /* P_i = Offset_i xor DECIPHER(K, C_i xor Offset_i) */ - inblock = (OCB_BLOCK *) (in + ((i - ctx->blocks_processed - 1) * 16)); + inblock = (OCB_BLOCK *)(in + ((i - ctx->blocks_processed - 1) * 16)); ocb_block16_xor(&ctx->offset, inblock, &tmp1); ocb_decrypt(ctx, &tmp1, &tmp2, ctx->keydec); - outblock = (OCB_BLOCK *) (out + ((i - ctx->blocks_processed - 1) * 16)); + outblock = + (OCB_BLOCK *)(out + ((i - ctx->blocks_processed - 1) * 16)); ocb_block16_xor(&ctx->offset, &tmp2, outblock); /* Checksum_i = Checksum_{i-1} xor P_i */ @@ -534,12 +540,14 @@ int CRYPTO_ocb128_decrypt(OCB128_CONTEXT * ctx, /* * Calculate the tag and verify it against the supplied tag */ -int CRYPTO_ocb128_finish(OCB128_CONTEXT * ctx, const unsigned char *tag, +int CRYPTO_ocb128_finish(OCB128_CONTEXT *ctx, const unsigned char *tag, size_t len) { OCB_BLOCK tmp1, tmp2; - /*Tag = ENCIPHER(K, Checksum_* xor Offset_* xor L_$) xor HASH(K,A) */ + /* + * Tag = ENCIPHER(K, Checksum_* xor Offset_* xor L_$) xor HASH(K,A) + */ ocb_block16_xor(&ctx->checksum, &ctx->offset, &tmp1); ocb_block16_xor(&tmp1, &ctx->l_dollar, &tmp2); ocb_encrypt(ctx, &tmp2, &tmp1, ctx->keyenc); @@ -559,7 +567,7 @@ int CRYPTO_ocb128_finish(OCB128_CONTEXT * ctx, const unsigned char *tag, /* * Retrieve the calculated tag */ -int CRYPTO_ocb128_tag(OCB128_CONTEXT * ctx, unsigned char *tag, size_t len) +int CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len) { if (len > 16 || len < 1) { return -1; @@ -577,7 +585,7 @@ int CRYPTO_ocb128_tag(OCB128_CONTEXT * ctx, unsigned char *tag, size_t len) /* * Release all resources */ -void CRYPTO_ocb128_cleanup(OCB128_CONTEXT * ctx) +void CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx) { if (ctx) { if (ctx->l) { @@ -588,4 +596,4 @@ void CRYPTO_ocb128_cleanup(OCB128_CONTEXT * ctx) } } -#endif /* OPENSSL_NO_OCB */ +#endif /* OPENSSL_NO_OCB */ |