libcrypto: Use size_t for size calculations

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Andreas Schneider
2019-01-26 14:09:44 +01:00
parent 8ddbe7bec6
commit 8ec80d1f5d

View File

@@ -729,7 +729,8 @@ evp_cipher_aead_encrypt(struct ssh_cipher_struct *cipher,
{ {
size_t authlen, aadlen; size_t authlen, aadlen;
u_char lastiv[1]; u_char lastiv[1];
int outlen = 0; int tmplen = 0;
size_t outlen;
int rc; int rc;
(void) seq; (void) seq;
@@ -750,10 +751,11 @@ evp_cipher_aead_encrypt(struct ssh_cipher_struct *cipher,
/* Pass over the authenticated data (not encrypted) */ /* Pass over the authenticated data (not encrypted) */
rc = EVP_EncryptUpdate(cipher->ctx, rc = EVP_EncryptUpdate(cipher->ctx,
NULL, NULL,
&outlen, &tmplen,
(unsigned char *)in, (unsigned char *)in,
(int)aadlen); (int)aadlen);
if (rc == 0 || outlen != (int)aadlen) { outlen = tmplen;
if (rc == 0 || outlen != aadlen) {
SSH_LOG(SSH_LOG_WARNING, "Failed to pass authenticated data"); SSH_LOG(SSH_LOG_WARNING, "Failed to pass authenticated data");
return; return;
} }
@@ -762,9 +764,10 @@ evp_cipher_aead_encrypt(struct ssh_cipher_struct *cipher,
/* Encrypt the rest of the data */ /* Encrypt the rest of the data */
rc = EVP_EncryptUpdate(cipher->ctx, rc = EVP_EncryptUpdate(cipher->ctx,
(unsigned char *)out + aadlen, (unsigned char *)out + aadlen,
&outlen, &tmplen,
(unsigned char *)in + aadlen, (unsigned char *)in + aadlen,
(int)len - aadlen); (int)len - aadlen);
outlen = tmplen;
if (rc != 1 || outlen != (int)len - aadlen) { if (rc != 1 || outlen != (int)len - aadlen) {
SSH_LOG(SSH_LOG_WARNING, "EVP_EncryptUpdate failed"); SSH_LOG(SSH_LOG_WARNING, "EVP_EncryptUpdate failed");
return; return;
@@ -773,7 +776,7 @@ evp_cipher_aead_encrypt(struct ssh_cipher_struct *cipher,
/* compute tag */ /* compute tag */
rc = EVP_EncryptFinal(cipher->ctx, rc = EVP_EncryptFinal(cipher->ctx,
NULL, NULL,
&outlen); &tmplen);
if (rc < 0) { if (rc < 0) {
SSH_LOG(SSH_LOG_WARNING, "EVP_EncryptFinal failed: Failed to create a tag"); SSH_LOG(SSH_LOG_WARNING, "EVP_EncryptFinal failed: Failed to create a tag");
return; return;