Switch all 'num' parameters in crypto/modes to unsigned.
Also switch the EVP_CIPHER copy to cut down on how frequently we need to cast back and forth. BUG=22 Change-Id: I9af1e586ca27793a4ee6193bbb348cf2b28a126e Reviewed-on: https://boringssl-review.googlesource.com/7689 Reviewed-by: Steven Valdez <svaldez@google.com> Reviewed-by: David Benjamin <davidben@google.com>
This commit is contained in:
parent
1a0a8b6760
commit
0e21f41fe8
@ -96,13 +96,17 @@ void AES_cbc_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
||||
|
||||
void AES_ofb128_encrypt(const uint8_t *in, uint8_t *out, size_t length,
|
||||
const AES_KEY *key, uint8_t *ivec, int *num) {
|
||||
CRYPTO_ofb128_encrypt(in, out, length, key, ivec, num,
|
||||
unsigned num_u = (unsigned)(*num);
|
||||
CRYPTO_ofb128_encrypt(in, out, length, key, ivec, &num_u,
|
||||
(block128_f)AES_encrypt);
|
||||
*num = (int)num_u;
|
||||
}
|
||||
|
||||
void AES_cfb128_encrypt(const uint8_t *in, uint8_t *out, size_t length,
|
||||
const AES_KEY *key, uint8_t *ivec, int *num,
|
||||
int enc) {
|
||||
CRYPTO_cfb128_encrypt(in, out, length, key, ivec, num, enc,
|
||||
unsigned num_u = (unsigned)(*num);
|
||||
CRYPTO_cfb128_encrypt(in, out, length, key, ivec, &num_u, enc,
|
||||
(block128_f)AES_encrypt);
|
||||
*num = (int)num_u;
|
||||
}
|
||||
|
@ -371,17 +371,15 @@ static int aes_ecb_cipher(EVP_CIPHER_CTX *ctx, uint8_t *out, const uint8_t *in,
|
||||
|
||||
static int aes_ctr_cipher(EVP_CIPHER_CTX *ctx, uint8_t *out, const uint8_t *in,
|
||||
size_t len) {
|
||||
unsigned num = (unsigned)ctx->num;
|
||||
EVP_AES_KEY *dat = (EVP_AES_KEY *)ctx->cipher_data;
|
||||
|
||||
if (dat->stream.ctr) {
|
||||
CRYPTO_ctr128_encrypt_ctr32(in, out, len, &dat->ks, ctx->iv, ctx->buf, &num,
|
||||
dat->stream.ctr);
|
||||
CRYPTO_ctr128_encrypt_ctr32(in, out, len, &dat->ks, ctx->iv, ctx->buf,
|
||||
&ctx->num, dat->stream.ctr);
|
||||
} else {
|
||||
CRYPTO_ctr128_encrypt(in, out, len, &dat->ks, ctx->iv, ctx->buf, &num,
|
||||
CRYPTO_ctr128_encrypt(in, out, len, &dat->ks, ctx->iv, ctx->buf, &ctx->num,
|
||||
dat->block);
|
||||
}
|
||||
ctx->num = (int)num;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -57,14 +57,13 @@
|
||||
OPENSSL_COMPILE_ASSERT((16 % sizeof(size_t)) == 0, bad_size_t_size);
|
||||
|
||||
void CRYPTO_cfb128_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
||||
const void *key, uint8_t ivec[16], int *num, int enc,
|
||||
block128_f block) {
|
||||
unsigned int n;
|
||||
const void *key, uint8_t ivec[16], unsigned *num,
|
||||
int enc, block128_f block) {
|
||||
size_t l = 0;
|
||||
|
||||
assert(in && out && key && ivec && num);
|
||||
|
||||
n = *num;
|
||||
unsigned n = *num;
|
||||
|
||||
if (enc) {
|
||||
while (n && len) {
|
||||
@ -199,7 +198,7 @@ static void cfbr_encrypt_block(const uint8_t *in, uint8_t *out, unsigned nbits,
|
||||
|
||||
/* N.B. This expects the input to be packed, MS bit first */
|
||||
void CRYPTO_cfb128_1_encrypt(const uint8_t *in, uint8_t *out, size_t bits,
|
||||
const void *key, uint8_t ivec[16], int *num,
|
||||
const void *key, uint8_t ivec[16], unsigned *num,
|
||||
int enc, block128_f block) {
|
||||
size_t n;
|
||||
uint8_t c[1], d[1];
|
||||
@ -217,7 +216,7 @@ void CRYPTO_cfb128_1_encrypt(const uint8_t *in, uint8_t *out, size_t bits,
|
||||
|
||||
void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out,
|
||||
size_t length, const void *key,
|
||||
unsigned char ivec[16], int *num, int enc,
|
||||
unsigned char ivec[16], unsigned *num, int enc,
|
||||
block128_f block) {
|
||||
size_t n;
|
||||
|
||||
|
@ -200,7 +200,7 @@ typedef void (*ctr128_f)(const uint8_t *in, uint8_t *out, size_t blocks,
|
||||
* incremented by this function. */
|
||||
void CRYPTO_ctr128_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
||||
const void *key, uint8_t ivec[16],
|
||||
uint8_t ecount_buf[16], unsigned int *num,
|
||||
uint8_t ecount_buf[16], unsigned *num,
|
||||
block128_f block);
|
||||
|
||||
/* CRYPTO_ctr128_encrypt_ctr32 acts like |CRYPTO_ctr128_encrypt| but takes
|
||||
@ -209,7 +209,7 @@ void CRYPTO_ctr128_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
||||
* function. */
|
||||
void CRYPTO_ctr128_encrypt_ctr32(const uint8_t *in, uint8_t *out, size_t len,
|
||||
const void *key, uint8_t ivec[16],
|
||||
uint8_t ecount_buf[16], unsigned int *num,
|
||||
uint8_t ecount_buf[16], unsigned *num,
|
||||
ctr128_f ctr);
|
||||
|
||||
|
||||
@ -313,7 +313,7 @@ void CRYPTO_cbc128_decrypt(const uint8_t *in, uint8_t *out, size_t len,
|
||||
* call. */
|
||||
void CRYPTO_ofb128_encrypt(const uint8_t *in, uint8_t *out,
|
||||
size_t len, const void *key, uint8_t ivec[16],
|
||||
int *num, block128_f block);
|
||||
unsigned *num, block128_f block);
|
||||
|
||||
|
||||
/* CFB. */
|
||||
@ -323,21 +323,21 @@ void CRYPTO_ofb128_encrypt(const uint8_t *in, uint8_t *out,
|
||||
* |len| be a multiple of any value and any partial blocks are stored in |ivec|
|
||||
* and |*num|, the latter must be zero before the initial call. */
|
||||
void CRYPTO_cfb128_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
||||
const void *key, uint8_t ivec[16], int *num, int enc,
|
||||
block128_f block);
|
||||
const void *key, uint8_t ivec[16], unsigned *num,
|
||||
int enc, block128_f block);
|
||||
|
||||
/* CRYPTO_cfb128_8_encrypt encrypts (or decrypts, if |enc| is zero) |len| bytes
|
||||
* from |in| to |out| using |block| in CFB-8 mode. Prior to the first call
|
||||
* |num| should be set to zero. */
|
||||
void CRYPTO_cfb128_8_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
||||
const void *key, uint8_t ivec[16], int *num,
|
||||
const void *key, uint8_t ivec[16], unsigned *num,
|
||||
int enc, block128_f block);
|
||||
|
||||
/* CRYPTO_cfb128_1_encrypt encrypts (or decrypts, if |enc| is zero) |len| bytes
|
||||
* from |in| to |out| using |block| in CFB-1 mode. Prior to the first call
|
||||
* |num| should be set to zero. */
|
||||
void CRYPTO_cfb128_1_encrypt(const uint8_t *in, uint8_t *out, size_t bits,
|
||||
const void *key, uint8_t ivec[16], int *num,
|
||||
const void *key, uint8_t ivec[16], unsigned *num,
|
||||
int enc, block128_f block);
|
||||
|
||||
size_t CRYPTO_cts128_encrypt_block(const uint8_t *in, uint8_t *out, size_t len,
|
||||
|
@ -56,13 +56,11 @@
|
||||
OPENSSL_COMPILE_ASSERT((16 % sizeof(size_t)) == 0, bad_size_t_size);
|
||||
|
||||
void CRYPTO_ofb128_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
||||
const void *key, uint8_t ivec[16], int *num,
|
||||
const void *key, uint8_t ivec[16], unsigned *num,
|
||||
block128_f block) {
|
||||
unsigned int n;
|
||||
|
||||
assert(in && out && key && ivec && num);
|
||||
|
||||
n = *num;
|
||||
unsigned n = *num;
|
||||
|
||||
while (n && len) {
|
||||
*(out++) = *(in++) ^ ivec[n];
|
||||
|
@ -481,7 +481,7 @@ struct evp_cipher_ctx_st {
|
||||
|
||||
/* num contains the number of bytes of |iv| which are valid for modes that
|
||||
* manage partial blocks themselves. */
|
||||
int num;
|
||||
unsigned num;
|
||||
|
||||
/* final_used is non-zero if the |final| buffer contains plaintext. */
|
||||
int final_used;
|
||||
|
Loading…
x
Reference in New Issue
Block a user