From d3ac2eab6572e348cff33b02690e1177dcd6a4bd Mon Sep 17 00:00:00 2001 From: Pauli Date: Mon, 13 Jan 2020 15:42:46 +1000 Subject: [PATCH] The MD2 test uses the EVP APIs not the low level ones. The test can be moved into the EVP tests and the separate executable removed. Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/10821) --- test/build.info | 5 -- test/md2test.c | 87 --------------------- test/recipes/05-test_md2.t | 15 ---- test/recipes/30-test_evp.t | 3 + test/recipes/30-test_evp_data/evpmd_md2.txt | 44 +++++++++++ 5 files changed, 47 insertions(+), 107 deletions(-) delete mode 100644 test/md2test.c delete mode 100644 test/recipes/05-test_md2.t create mode 100644 test/recipes/30-test_evp_data/evpmd_md2.txt diff --git a/test/build.info b/test/build.info index c54b7bc5a4..d8e390197e 100644 --- a/test/build.info +++ b/test/build.info @@ -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 index b2dfe82035..0000000000 --- a/test/md2test.c +++ /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 - -#include -#include "internal/nelem.h" -#include "testutil.h" - -static OSSL_PROVIDER *prov = NULL; - -#ifndef OPENSSL_NO_MD2 -# include -# include - -# ifdef CHARSET_EBCDIC -# include -# 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 index 00caba54dd..0000000000 --- a/test/recipes/05-test_md2.t +++ /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"); diff --git a/test/recipes/30-test_evp.t b/test/recipes/30-test_evp.t index 23c4aa8620..e7759bf5dc 100644 --- a/test/recipes/30-test_evp.t +++ b/test/recipes/30-test_evp.t @@ -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 index 0000000000..cd0d5c6f88 --- /dev/null +++ b/test/recipes/30-test_evp_data/evpmd_md2.txt @@ -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 -- 2.25.1