]> git.ipfire.org Git - thirdparty/openssl.git/blame - test/md2test.c
Create provider errors and use them
[thirdparty/openssl.git] / test / md2test.c
CommitLineData
440e5d80 1/*
524080c6 2 * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
58964a49 3 *
909f1a2e 4 * Licensed under the Apache License 2.0 (the "License"). You may not use
440e5d80
RS
5 * this file except in compliance with the License. You can obtain a copy
6 * in the file LICENSE in the source distribution or at
7 * https://www.openssl.org/source/license.html
58964a49
RE
8 */
9
58964a49 10#include <string.h>
f5d7a031 11
d0308923 12#include <openssl/provider.h>
176db6dc 13#include "internal/nelem.h"
524080c6 14#include "testutil.h"
55f78baf 15
d0308923
MC
16static OSSL_PROVIDER *prov = NULL;
17
524080c6 18#ifndef OPENSSL_NO_MD2
0f113f3e
MC
19# include <openssl/evp.h>
20# include <openssl/md2.h>
58964a49 21
0f113f3e
MC
22# ifdef CHARSET_EBCDIC
23# include <openssl/ebcdic.h>
24# endif
a53955d8 25
0f113f3e
MC
26static char *test[] = {
27 "",
28 "a",
29 "abc",
30 "message digest",
31 "abcdefghijklmnopqrstuvwxyz",
32 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
33 "12345678901234567890123456789012345678901234567890123456789012345678901234567890",
0f113f3e 34};
58964a49 35
0f113f3e
MC
36static char *ret[] = {
37 "8350e5a3e24c153df2275c9f80692773",
38 "32ec01ec4a6dac72c0ab96fb34c0b5d1",
39 "da853b0d3f88d99b30283a69e6ded6bb",
40 "ab4f496bfb2a530b219ff33031fe06b0",
41 "4e8ddff3650292ab5a4108c3aa47940b",
42 "da33def2a42df13975352846c30338cd",
43 "d5976f79d83d3a0dc9806c3c66f3efd8",
44};
58964a49 45
524080c6 46static int test_md2(int n)
0f113f3e 47{
524080c6 48 char buf[80];
0f113f3e 49 unsigned char md[MD2_DIGEST_LENGTH];
0f113f3e 50 int i;
524080c6
P
51
52 if (!TEST_true(EVP_Digest((unsigned char *)test[n], strlen(test[n]),
53 md, NULL, EVP_md2(), NULL)))
54 return 0;
58964a49 55
0f113f3e
MC
56 for (i = 0; i < MD2_DIGEST_LENGTH; i++)
57 sprintf(&(buf[i * 2]), "%02x", md[i]);
524080c6
P
58 if (!TEST_str_eq(buf, ret[n]))
59 return 0;
60 return 1;
0f113f3e 61}
f5d7a031 62#endif
524080c6 63
d0308923
MC
64int global_init(void)
65{
66 prov = OSSL_PROVIDER_load(NULL, "legacy");
67
68 return prov != NULL;
69}
70void cleanup_tests(void)
71{
72 OSSL_PROVIDER_unload(prov);
73}
74
ad887416 75int setup_tests(void)
524080c6
P
76{
77#ifndef OPENSSL_NO_MD2
78 ADD_ALL_TESTS(test_md2, OSSL_NELEM(test));
79#endif
ad887416 80 return 1;
524080c6 81}