remove store of last block w/o padding and adjust padding last block case

This commit is contained in:
Jacob Barthelmeh
2019-06-06 14:43:07 +07:00
parent fee81ce49e
commit 090899e74e

View File

@ -358,15 +358,15 @@ WOLFSSL_API int wolfSSL_EVP_CipherUpdate(WOLFSSL_EVP_CIPHER_CTX *ctx,
if ((ctx->flags & WOLFSSL_EVP_CIPH_NO_PADDING) || if ((ctx->flags & WOLFSSL_EVP_CIPH_NO_PADDING) ||
(ctx->block_size == 1)) { (ctx->block_size == 1)) {
ctx->lastUsed = 0; ctx->lastUsed = 0;
XMEMCPY(ctx->lastBlock, &out[ctx->block_size * blocks], ctx->block_size);
*outl+= ctx->block_size * blocks; *outl+= ctx->block_size * blocks;
} else { } else {
if (inl == 0) { if (inl == 0) {
ctx->lastUsed = 1; ctx->lastUsed = 1;
blocks = blocks - 1; /* save last block to check padding in blocks = blocks - 1; /* save last block to check padding in
* EVP_CipherFinal call */ * EVP_CipherFinal call */
XMEMCPY(ctx->lastBlock, &out[ctx->block_size * blocks],
ctx->block_size);
} }
XMEMCPY(ctx->lastBlock, &out[ctx->block_size * blocks], ctx->block_size);
*outl+= ctx->block_size * blocks; *outl+= ctx->block_size * blocks;
} }
} else { } else {