libpurple/tests/test_md5.c

Thu, 22 Sep 2016 22:09:22 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 22 Sep 2016 22:09:22 -0500
changeset 38057
41f47eb1aa19
parent 37597
c92c6f818320
permissions
-rw-r--r--

Add our license spiel to a bunch of files

38057
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
1 /*
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
2 * purple
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
3 *
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
4 * Purple is the legal property of its developers, whose names are too numerous
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
6 * source distribution.
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
7 *
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
8 * This program is free software; you can redistribute it and/or modify
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
9 * it under the terms of the GNU General Public License as published by
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
11 * (at your option) any later version.
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
12 *
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
13 * This program is distributed in the hope that it will be useful,
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
16 * GNU General Public License for more details.
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
17 *
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
18 * You should have received a copy of the GNU General Public License
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
19 * along with this program; if not, write to the Free Software
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
21 *
41f47eb1aa19 Add our license spiel to a bunch of files
Gary Kramlich <grim@reaperworld.com>
parents: 37597
diff changeset
22 */
37593
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23 #include <glib.h>
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
25 #include <purple.h>
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27 #include "ciphers/md5hash.h"
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
28
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
29 static void
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30 test_md5hash(gchar *data, gchar *digest) {
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
31 PurpleHash *hash = NULL;
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32 gchar cdigest[33];
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33 gboolean ret = FALSE;
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
35 hash = purple_md5_hash_new();
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37 purple_hash_append(hash, (guchar *)data, strlen(data));
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39 ret = purple_hash_digest_to_str(hash, cdigest, sizeof(cdigest));
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
41 g_assert(ret);
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42 g_assert_cmpstr(digest, ==, cdigest);
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43 }
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
45 static void
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46 test_md5hash_empty_string(void) {
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47 test_md5hash("",
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48 "d41d8cd98f00b204e9800998ecf8427e");
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49 }
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
50
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
51 static void
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
52 test_md5hash_a(void) {
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
53 test_md5hash("a",
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
54 "0cc175b9c0f1b6a831c399e269772661");
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
55 }
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
56
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
57 static void
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58 test_md5hash_abc(void) {
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 test_md5hash("abc",
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60 "900150983cd24fb0d6963f7d28e17f72");
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61 }
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
63 static void
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64 test_md5hash_message_digest(void) {
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65 test_md5hash("message digest",
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66 "f96b697d7cb7938d525a2f31aaf161d0");
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67 }
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
69 static void
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70 test_md5hash_a_to_z(void) {
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71 test_md5hash("abcdefghijklmnopqrstuvwxyz",
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72 "c3fcd3d76192e4007dfb496cca67e13b");
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73 }
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
74
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75 static void
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
76 test_md5hash_A_to_Z_a_to_z_0_to_9(void) {
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
77 test_md5hash("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
78 "d174ab98d277d9f5a5611c2c9f419d9f");
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
79 }
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
80
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
81 static void
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
82 test_md5hash_1_to_0_eight_times(void) {
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
83 test_md5hash("12345678901234567890123456789012345678901234567890123456789012345678901234567890",
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
84 "57edf4a22be3c955ac49da2e2107b67a");
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
85 }
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
86
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
87 gint
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
88 main(gint argc, gchar **argv) {
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
89 g_test_init(&argc, &argv, NULL);
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
90
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
91 g_test_add_func("/hash/md5/empty-string",
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
92 test_md5hash_empty_string);
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
93 g_test_add_func("/hash/md5/a",
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
94 test_md5hash_a);
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
95 g_test_add_func("/hash/md5/abc",
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
96 test_md5hash_abc);
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
97 g_test_add_func("/hash/md5/message digest",
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
98 test_md5hash_message_digest);
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
99 g_test_add_func("/hash/md5/a to z",
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
100 test_md5hash_a_to_z);
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
101 g_test_add_func("/hash/md5/A to Z, a to z, 0 to 9" ,
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
102 test_md5hash_A_to_Z_a_to_z_0_to_9);
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
103 g_test_add_func("/hash/md5/1 to 0 eight times",
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
104 test_md5hash_1_to_0_eight_times);
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
105
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
106 return g_test_run();
17c34d87c5b3 Initial conversion to gtester
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
107 }

mercurial