Reviewed-by: Tim Hudson <tjh@openssl.org>
EVP_AES_WRAP_CTX *wctx = ctx->cipher_data;
size_t rv;
if (inlen % 8)
EVP_AES_WRAP_CTX *wctx = ctx->cipher_data;
size_t rv;
if (inlen % 8)
+ return -1;
+ if (ctx->encrypt && inlen < 8)
+ return -1;
+ if (!ctx->encrypt && inlen < 16)
+ return -1;
if (!out)
{
if (ctx->encrypt)
if (!out)
{
if (ctx->encrypt)
unsigned char *A, B[16], *R;
size_t i, j, t;
inlen -= 8;
unsigned char *A, B[16], *R;
size_t i, j, t;
inlen -= 8;
- if ((inlen & 0x7) || (inlen < 8) || (inlen > CRYPTO128_WRAP_MAX))
+ if ((inlen & 0x7) || (inlen < 16) || (inlen > CRYPTO128_WRAP_MAX))
return 0;
A = B;
t = 6 * (inlen >> 3);
return 0;
A = B;
t = 6 * (inlen >> 3);