test/evp_test.c: [ciphers] Test that we get back the same IV we gave
authorRichard Levitte <levitte@openssl.org>
Mon, 8 Jul 2019 18:36:29 +0000 (20:36 +0200)
committerRichard Levitte <levitte@openssl.org>
Thu, 11 Jul 2019 05:27:02 +0000 (07:27 +0200)
Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/9328)

test/evp_test.c

index 0489bbe093867999766629be32be54f621fecf57..f76929d539c44e59897a3d1baffd6d4f44549a16 100644 (file)
@@ -661,6 +661,14 @@ static int cipher_test_enc(EVP_TEST *t, int enc,
         t->err = "KEY_SET_ERROR";
         goto err;
     }
+    /* Check that we get the same IV back */
+    if (expected->iv != NULL
+        && (EVP_CIPHER_flags(expected->cipher) & EVP_CIPH_CUSTOM_IV) == 0
+        && !TEST_mem_eq(expected->iv, expected->iv_len,
+                        EVP_CIPHER_CTX_iv(ctx), expected->iv_len)) {
+        t->err = "INVALID_IV";
+        goto err;
+    }
 
     if (expected->aead == EVP_CIPH_CCM_MODE) {
         if (!EVP_CipherUpdate(ctx, NULL, &tmplen, NULL, out_len)) {