]>
Commit | Line | Data |
---|---|---|
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 |
16 | static 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 |
26 | static char *test[] = { |
27 | "", | |
28 | "a", | |
29 | "abc", | |
30 | "message digest", | |
31 | "abcdefghijklmnopqrstuvwxyz", | |
32 | "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", | |
33 | "12345678901234567890123456789012345678901234567890123456789012345678901234567890", | |
0f113f3e | 34 | }; |
58964a49 | 35 | |
0f113f3e MC |
36 | static char *ret[] = { |
37 | "8350e5a3e24c153df2275c9f80692773", | |
38 | "32ec01ec4a6dac72c0ab96fb34c0b5d1", | |
39 | "da853b0d3f88d99b30283a69e6ded6bb", | |
40 | "ab4f496bfb2a530b219ff33031fe06b0", | |
41 | "4e8ddff3650292ab5a4108c3aa47940b", | |
42 | "da33def2a42df13975352846c30338cd", | |
43 | "d5976f79d83d3a0dc9806c3c66f3efd8", | |
44 | }; | |
58964a49 | 45 | |
524080c6 | 46 | static 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 |
64 | int global_init(void) |
65 | { | |
66 | prov = OSSL_PROVIDER_load(NULL, "legacy"); | |
67 | ||
68 | return prov != NULL; | |
69 | } | |
70 | void cleanup_tests(void) | |
71 | { | |
72 | OSSL_PROVIDER_unload(prov); | |
73 | } | |
74 | ||
ad887416 | 75 | int 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 | } |