Commit d12eef15 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Sanity check lengths for AES wrap algorithm.



Reviewed-by: default avatarTim Hudson <tjh@openssl.org>
parent d48e78f0
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -2098,7 +2098,11 @@ static int aes_wrap_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
	EVP_AES_WRAP_CTX *wctx = ctx->cipher_data;
	size_t rv;
	if (inlen % 8)
		return 0;
		return -1;
	if (ctx->encrypt && inlen < 8)
		return -1;
	if (!ctx->encrypt && inlen < 16)
		return -1;
	if (!out)
		{
		if (ctx->encrypt)
+1 −1
Original line number Diff line number Diff line
@@ -106,7 +106,7 @@ size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv,
	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);