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 <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/10821)
This commit is contained in:
Pauli 2020-01-13 15:42:46 +10:00
parent 9ce921f2da
commit d3ac2eab65
5 changed files with 47 additions and 107 deletions

View 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

View file

@ -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;
}

View file

@ -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");

View 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))

View file

@ -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