The MD2 test uses the EVP APIs not the low level ones.
authorPauli <paul.dale@oracle.com>
Mon, 13 Jan 2020 05:42:46 +0000 (15:42 +1000)
committerPauli <paul.dale@oracle.com>
Tue, 14 Jan 2020 09:50:18 +0000 (19:50 +1000)
The test can be moved into the EVP tests and the separate executable removed.

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/10821)

test/build.info
test/md2test.c [deleted file]
test/recipes/05-test_md2.t [deleted file]
test/recipes/30-test_evp.t
test/recipes/30-test_evp_data/evpmd_md2.txt [new file with mode: 0644]

index c54b7bc5a43995eff2e05478a5bd7156b441b114..d8e390197e821675fbc7f231a50fbdc13b827f9a 100644 (file)
@@ -33,7 +33,6 @@ IF[{- !$disabled{tests} -}]
           aborttest test_test \
           sanitytest rsa_complex exdatatest bntest \
           ectest ecstresstest ecdsatest gmdifftest pbelutest ideatest \
-          md2test \
           hmactest \
           rc2test rc4test rc5test \
           destest mdc2test \
@@ -116,10 +115,6 @@ IF[{- !$disabled{tests} -}]
   INCLUDE[ideatest]=../include ../apps/include
   DEPEND[ideatest]=../libcrypto libtestutil.a
 
-  SOURCE[md2test]=md2test.c
-  INCLUDE[md2test]=../include ../apps/include
-  DEPEND[md2test]=../libcrypto libtestutil.a
-
   SOURCE[hmactest]=hmactest.c
   INCLUDE[hmactest]=../include ../apps/include
   DEPEND[hmactest]=../libcrypto libtestutil.a
diff --git a/test/md2test.c b/test/md2test.c
deleted file mode 100644 (file)
index b2dfe82..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
- *
- * Licensed under the Apache License 2.0 (the "License").  You may not use
- * this file except in compliance with the License.  You can obtain a copy
- * in the file LICENSE in the source distribution or at
- * https://www.openssl.org/source/license.html
- */
-
-/*
- * MD2 low level APIs are deprecated for public use, but still ok for
- * internal use.
- */
-#include "internal/deprecated.h"
-
-#include <string.h>
-
-#include <openssl/provider.h>
-#include "internal/nelem.h"
-#include "testutil.h"
-
-static OSSL_PROVIDER *prov = NULL;
-
-#ifndef OPENSSL_NO_MD2
-# include <openssl/evp.h>
-# include <openssl/md2.h>
-
-# ifdef CHARSET_EBCDIC
-#  include <openssl/ebcdic.h>
-# endif
-
-static char *test[] = {
-    "",
-    "a",
-    "abc",
-    "message digest",
-    "abcdefghijklmnopqrstuvwxyz",
-    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
-    "12345678901234567890123456789012345678901234567890123456789012345678901234567890",
-};
-
-static char *ret[] = {
-    "8350e5a3e24c153df2275c9f80692773",
-    "32ec01ec4a6dac72c0ab96fb34c0b5d1",
-    "da853b0d3f88d99b30283a69e6ded6bb",
-    "ab4f496bfb2a530b219ff33031fe06b0",
-    "4e8ddff3650292ab5a4108c3aa47940b",
-    "da33def2a42df13975352846c30338cd",
-    "d5976f79d83d3a0dc9806c3c66f3efd8",
-};
-
-static int test_md2(int n)
-{
-    char buf[80];
-    unsigned char md[MD2_DIGEST_LENGTH];
-    int i;
-
-    if (!TEST_true(EVP_Digest((unsigned char *)test[n], strlen(test[n]),
-                                 md, NULL, EVP_md2(), NULL)))
-        return 0;
-
-    for (i = 0; i < MD2_DIGEST_LENGTH; i++)
-        sprintf(&(buf[i * 2]), "%02x", md[i]);
-    if (!TEST_str_eq(buf, ret[n]))
-        return 0;
-    return 1;
-}
-#endif
-
-int global_init(void)
-{
-    prov = OSSL_PROVIDER_load(NULL, "legacy");
-
-    return prov != NULL;
-}
-void cleanup_tests(void)
-{
-    OSSL_PROVIDER_unload(prov);
-}
-
-int setup_tests(void)
-{
-#ifndef OPENSSL_NO_MD2
-    ADD_ALL_TESTS(test_md2, OSSL_NELEM(test));
-#endif
-    return 1;
-}
diff --git a/test/recipes/05-test_md2.t b/test/recipes/05-test_md2.t
deleted file mode 100644 (file)
index 00caba5..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#! /usr/bin/env perl
-# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the Apache License 2.0 (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-
-use OpenSSL::Test::Simple;
-use OpenSSL::Test qw/:DEFAULT bldtop_dir/;
-
-setup("test_md2");
-
-simple_test("test_md2", "md2test", "md2");
index 23c4aa8620907fd9539f8681dc5383eb53c0b02a..e7759bf5dc2adba9c05f7b219dffd6ce8aab4100 100644 (file)
@@ -67,6 +67,9 @@ push @defltfiles, @chachafiles unless disabled("chacha");
 my @bffiles = qw( evpciph_bf.txt );
 push @defltfiles, @bffiles unless disabled("bf");
 
+my @bffiles = qw( evpmd_md2.txt );
+push @defltfiles, @bffiles unless disabled("md2");
+
 plan tests =>
     ($no_fips ? 0 : 1)          # FIPS install test
     + (scalar(@configs) * scalar(@files))
diff --git a/test/recipes/30-test_evp_data/evpmd_md2.txt b/test/recipes/30-test_evp_data/evpmd_md2.txt
new file mode 100644 (file)
index 0000000..cd0d5c6
--- /dev/null
@@ -0,0 +1,44 @@
+#
+# Copyright 2020 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+Title = MD2 tests
+
+Digest = MD2
+Availablein = legacy
+Input =
+Output = 8350e5a3e24c153df2275c9f80692773
+
+Digest = MD2
+Availablein = legacy
+Input = "a"
+Output = 32ec01ec4a6dac72c0ab96fb34c0b5d1
+
+Digest = MD2
+Availablein = legacy
+Input = "abc"
+Output = da853b0d3f88d99b30283a69e6ded6bb
+
+Digest = MD2
+Availablein = legacy
+Input = "message digest"
+Output = ab4f496bfb2a530b219ff33031fe06b0
+
+Digest = MD2
+Availablein = legacy
+Input = "abcdefghijklmnopqrstuvwxyz"
+Output = 4e8ddff3650292ab5a4108c3aa47940b
+
+Digest = MD2
+Availablein = legacy
+Input = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
+Output = da33def2a42df13975352846c30338cd
+
+Digest = MD2
+Availablein = legacy
+Input = "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+Output = d5976f79d83d3a0dc9806c3c66f3efd8