]>
Commit | Line | Data |
---|---|---|
440e5d80 | 1 | /* |
524080c6 | 2 | * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. |
58964a49 | 3 | * |
440e5d80 RS |
4 | * Licensed under the OpenSSL license (the "License"). You may not use |
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 | |
176db6dc | 12 | #include "internal/nelem.h" |
524080c6 | 13 | #include "testutil.h" |
55f78baf | 14 | |
524080c6 | 15 | #ifndef OPENSSL_NO_MD2 |
0f113f3e MC |
16 | # include <openssl/evp.h> |
17 | # include <openssl/md2.h> | |
58964a49 | 18 | |
0f113f3e MC |
19 | # ifdef CHARSET_EBCDIC |
20 | # include <openssl/ebcdic.h> | |
21 | # endif | |
a53955d8 | 22 | |
0f113f3e MC |
23 | static char *test[] = { |
24 | "", | |
25 | "a", | |
26 | "abc", | |
27 | "message digest", | |
28 | "abcdefghijklmnopqrstuvwxyz", | |
29 | "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", | |
30 | "12345678901234567890123456789012345678901234567890123456789012345678901234567890", | |
0f113f3e | 31 | }; |
58964a49 | 32 | |
0f113f3e MC |
33 | static char *ret[] = { |
34 | "8350e5a3e24c153df2275c9f80692773", | |
35 | "32ec01ec4a6dac72c0ab96fb34c0b5d1", | |
36 | "da853b0d3f88d99b30283a69e6ded6bb", | |
37 | "ab4f496bfb2a530b219ff33031fe06b0", | |
38 | "4e8ddff3650292ab5a4108c3aa47940b", | |
39 | "da33def2a42df13975352846c30338cd", | |
40 | "d5976f79d83d3a0dc9806c3c66f3efd8", | |
41 | }; | |
58964a49 | 42 | |
524080c6 | 43 | static int test_md2(int n) |
0f113f3e | 44 | { |
524080c6 | 45 | char buf[80]; |
0f113f3e | 46 | unsigned char md[MD2_DIGEST_LENGTH]; |
0f113f3e | 47 | int i; |
524080c6 P |
48 | |
49 | if (!TEST_true(EVP_Digest((unsigned char *)test[n], strlen(test[n]), | |
50 | md, NULL, EVP_md2(), NULL))) | |
51 | return 0; | |
58964a49 | 52 | |
0f113f3e MC |
53 | for (i = 0; i < MD2_DIGEST_LENGTH; i++) |
54 | sprintf(&(buf[i * 2]), "%02x", md[i]); | |
524080c6 P |
55 | if (!TEST_str_eq(buf, ret[n])) |
56 | return 0; | |
57 | return 1; | |
0f113f3e | 58 | } |
f5d7a031 | 59 | #endif |
524080c6 | 60 | |
ad887416 | 61 | int setup_tests(void) |
524080c6 P |
62 | { |
63 | #ifndef OPENSSL_NO_MD2 | |
64 | ADD_ALL_TESTS(test_md2, OSSL_NELEM(test)); | |
65 | #endif | |
ad887416 | 66 | return 1; |
524080c6 | 67 | } |