summaryrefslogtreecommitdiffstats
path: root/crypto/evp
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2012-10-16 22:46:40 +0000
committerDr. Stephen Henson <steve@openssl.org>2012-10-16 22:46:40 +0000
commit96f7fafa24313106b121782f1dcf7928dd0838ed (patch)
treef9f20231c21fc0a089f3e4c072a09a0c7398deb7 /crypto/evp
parent487a0df700e601fe0526a65702cc5db77621cecf (diff)
Don't require tag before ciphertext in AESGCM mode
Diffstat (limited to 'crypto/evp')
-rw-r--r--crypto/evp/e_aes.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/crypto/evp/e_aes.c b/crypto/evp/e_aes.c
index e4d97dbebd..1bfb5d92b3 100644
--- a/crypto/evp/e_aes.c
+++ b/crypto/evp/e_aes.c
@@ -969,8 +969,6 @@ static int aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
if (!gctx->iv_set)
return -1;
- if (!ctx->encrypt && gctx->taglen < 0)
- return -1;
if (in)
{
if (out == NULL)
@@ -1012,6 +1010,8 @@ static int aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
{
if (!ctx->encrypt)
{
+ if (gctx->taglen < 0)
+ return -1;
if (CRYPTO_gcm128_finish(&gctx->gcm,
ctx->buf, gctx->taglen) != 0)
return -1;