Make *Final work for key wrap again.
authorDr. Stephen Henson <steve@openssl.org>
Thu, 17 Jul 2014 21:27:50 +0000 (22:27 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Thu, 17 Jul 2014 22:29:14 +0000 (23:29 +0100)
Reviewed-by: Tim Hudson <tjh@openssl.org>
crypto/evp/e_aes.c

index ce300440a89cda699b47d263bb9952946542ae92..3501066b077f31654bcf91e57c60a4a61c997404 100644 (file)
@@ -2097,6 +2097,8 @@ static int aes_wrap_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
        {
        EVP_AES_WRAP_CTX *wctx = ctx->cipher_data;
        size_t rv;
+       if (!in)
+               return 0;
        if (inlen % 8)
                return -1;
        if (ctx->encrypt && inlen < 8)
@@ -2110,8 +2112,6 @@ static int aes_wrap_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
                else
                        return inlen - 8;
                }
-       if (!in)
-               return 0;
        if (ctx->encrypt)
                rv = CRYPTO_128_wrap(&wctx->ks.ks, wctx->iv, out, in, inlen,
                                                (block128_f)AES_encrypt);