plugins/ciphertest.c

Tue, 21 Feb 2006 19:29:36 +0000

author
Richard Laager <rlaager@pidgin.im>
date
Tue, 21 Feb 2006 19:29:36 +0000
changeset 13309
471c9910d6b9
parent 12459
fa06941b27e1
permissions
-rw-r--r--

[gaim-migrate @ 15674]
Make 'E-Mail' consistent here. This string is already used in Jabber, so I'm effectively removing a string, which I've been told doesn't break freeze.

10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
1 /*
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
2 * A plugin to test the ciphers that ship with gaim
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
3 *
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
4 * Copyright (C) 2004, Gary Kramlich <amc_grim@users.sf.net>
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
5 *
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
7 * modify it under the terms of the GNU General Public License as
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
8 * published by the Free Software Foundation; either version 2 of the
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
9 * License, or (at your option) any later version.
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
10 *
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful, but
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
14 * General Public License for more details.
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
15 *
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
19 * 02111-1307, USA.
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
20 */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
21
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
22 #ifdef HAVE_CONFIG_H
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
23 #include <config.h>
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
24 #endif
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
25
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
26 #ifndef GAIM_PLUGINS
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
27 #define GAIM_PLUGINS
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
28 #endif
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
29
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
30 #include "internal.h"
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
31
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
32 #include <glib.h>
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
33 #include <string.h>
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
34
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
35 #include "cipher.h"
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
36 #include "debug.h"
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
37 #include "plugin.h"
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
38 #include "version.h"
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
39
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
40 struct test {
12382
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
41 const gchar *question;
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
42 const gchar *answer;
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
43 };
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
44
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
45 /**************************************************************************
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
46 * MD5 Stuff
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
47 **************************************************************************/
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
48 struct test md5_tests[8] = {
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
49 { "", "d41d8cd98f00b204e9800998ecf8427e"},
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
50 { "a", "0cc175b9c0f1b6a831c399e269772661"},
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
51 { "abc", "900150983cd24fb0d6963f7d28e17f72"},
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
52 { "message digest", "f96b697d7cb7938d525a2f31aaf161d0"},
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
53 { "abcdefghijklmnopqrstuvwxyz", "c3fcd3d76192e4007dfb496cca67e13b"},
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
54 { "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
55 "abcdefghijklmnopqrstuvwxyz"
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
56 "0123456789", "d174ab98d277d9f5a5611c2c9f419d9f"},
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
57 {"123456789012345678901234567"
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
58 "890123456789012345678901234"
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
59 "56789012345678901234567890", "57edf4a22be3c955ac49da2e2107b67a"},
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
60 { NULL, NULL }
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
61 };
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
62
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
63 static void
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
64 cipher_test_md5() {
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
65 GaimCipher *cipher;
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
66 GaimCipherContext *context;
12388
3a25d96abdaf [gaim-migrate @ 14694]
Richard Laager <rlaager@pidgin.im>
parents: 12387
diff changeset
67 gchar digest[33];
10687
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
68 gboolean ret;
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
69 gint i = 0;
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
70
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
71 cipher = gaim_ciphers_find_cipher("md5");
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
72 if(!cipher) {
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
73 gaim_debug_info("cipher-test",
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
74 "could not find md5 cipher, not testing\n");
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
75 return;
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
76 }
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
77
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
78 gaim_debug_info("cipher-test", "Running md5 tests\n");
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
79
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
80 context = gaim_cipher_context_new(cipher, NULL);
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
81
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
82 while(md5_tests[i].answer) {
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
83 gaim_debug_info("cipher-test", "Test %02d:\n", i);
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
84 gaim_debug_info("cipher-test", "Testing '%s'\n", md5_tests[i].question);
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
85
12382
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
86 gaim_cipher_context_append(context, (guchar *)md5_tests[i].question,
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
87 strlen(md5_tests[i].question));
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
88
10687
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
89 ret = gaim_cipher_context_digest_to_str(context, sizeof(digest),
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
90 digest, NULL);
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
91
10687
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
92 if(!ret) {
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
93 gaim_debug_info("cipher-test", "failed\n");
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
94 } else {
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
95 gaim_debug_info("cipher-test", "\tGot: %s\n", digest);
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
96 gaim_debug_info("cipher-test", "\tWanted: %s\n",
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
97 md5_tests[i].answer);
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
98 }
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
99
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
100 gaim_cipher_context_reset(context, NULL);
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
101 i++;
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
102 }
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
103
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
104 gaim_cipher_context_destroy(context);
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
105
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
106 gaim_debug_info("cipher-test", "md5 tests completed\n\n");
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
107 }
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
108
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
109 /**************************************************************************
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
110 * SHA-1 stuff
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
111 **************************************************************************/
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
112 struct test sha1_tests[5] = {
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
113 {"a", "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8"},
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
114 {"abc", "a9993e364706816aba3e25717850c26c9cd0d89d"} ,
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
115 {"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", "84983e441c3bd26ebaae4aa1f95129e5e54670f1"} ,
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
116 {NULL, "34aa973cd4c4daa4f61eeb2bdbad27316534016f"},
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
117 {NULL, NULL}
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
118 };
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
119
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
120 static void
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
121 cipher_test_sha1() {
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
122 GaimCipher *cipher;
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
123 GaimCipherContext *context;
12388
3a25d96abdaf [gaim-migrate @ 14694]
Richard Laager <rlaager@pidgin.im>
parents: 12387
diff changeset
124 gchar digest[41];
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
125 gint i = 0;
10687
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
126 gboolean ret;
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
127
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
128 cipher = gaim_ciphers_find_cipher("sha1");
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
129 if(!cipher) {
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
130 gaim_debug_info("cipher-test",
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
131 "could not find sha1 cipher, not testing\n");
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
132 return;
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
133 }
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
134
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
135 gaim_debug_info("cipher-test", "Running sha1 tests\n");
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
136
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
137 context = gaim_cipher_context_new(cipher, NULL);
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
138
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
139 while(sha1_tests[i].answer) {
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
140 gaim_debug_info("cipher-test", "Test %02d:\n", i);
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
141 gaim_debug_info("cipher-test", "Testing '%s'\n",
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
142 (sha1_tests[i].question != NULL) ?
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
143 sha1_tests[i].question : "'a'x1000, 1000 times");
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
144
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
145 if(sha1_tests[i].question) {
12382
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
146 gaim_cipher_context_append(context, (guchar *)sha1_tests[i].question,
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
147 strlen(sha1_tests[i].question));
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
148 } else {
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
149 gint j;
11183
be87fe695c93 [gaim-migrate @ 13295]
Mark Doliner <markdoliner@pidgin.im>
parents: 11033
diff changeset
150 guchar buff[1000];
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
151
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
152 memset(buff, 'a', 1000);
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
153
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
154 for(j = 0; j < 1000; j++)
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
155 gaim_cipher_context_append(context, buff, 1000);
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
156 }
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
157
10687
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
158 ret = gaim_cipher_context_digest_to_str(context, sizeof(digest),
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
159 digest, NULL);
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
160
10687
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
161 if(!ret) {
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
162 gaim_debug_info("cipher-test", "failed\n");
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
163 } else {
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
164 gaim_debug_info("cipher-test", "\tGot: %s\n", digest);
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
165 gaim_debug_info("cipher-test", "\tWanted: %s\n",
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
166 sha1_tests[i].answer);
5ac4b470bee8 [gaim-migrate @ 12235]
Etan Reisner <deryni@pidgin.im>
parents: 10684
diff changeset
167 }
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
168
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
169 gaim_cipher_context_reset(context, NULL);
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
170 i++;
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
171 }
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
172
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
173 gaim_cipher_context_destroy(context);
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
174
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
175 gaim_debug_info("cipher-test", "sha1 tests completed\n\n");
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
176 }
12382
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
177
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
178 static void
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
179 cipher_test_digest()
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
180 {
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
181 const gchar *nonce = "dcd98b7102dd2f0e8b11d0f600bfb0c093";
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
182 const gchar *client_nonce = "0a4f113b";
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
183 const gchar *username = "Mufasa";
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
184 const gchar *realm = "testrealm@host.com";
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
185 const gchar *password = "Circle Of Life";
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
186 const gchar *algorithm = "md5";
12389
7196ba664097 [gaim-migrate @ 14695]
Richard Laager <rlaager@pidgin.im>
parents: 12388
diff changeset
187 const gchar *nonce_count = "00000001";
12382
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
188 const gchar *method = "GET";
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
189 const gchar *qop = "auth";
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
190 const gchar *digest_uri = "/dir/index.html";
12389
7196ba664097 [gaim-migrate @ 14695]
Richard Laager <rlaager@pidgin.im>
parents: 12388
diff changeset
191 const gchar *entity = NULL;
12382
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
192
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
193 gchar *session_key;
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
194
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
195 gaim_debug_info("cipher-test", "Running HTTP Digest tests\n");
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
196
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
197 session_key = gaim_cipher_http_digest_calculate_session_key(
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
198 algorithm, username, realm, password,
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
199 nonce, client_nonce);
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
200
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
201 if (session_key == NULL)
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
202 {
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
203 gaim_debug_info("cipher-test",
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
204 "gaim_cipher_http_digest_calculate_session_key failed.\n");
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
205 }
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
206 else
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
207 {
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
208 gchar *response;
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
209
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
210 gaim_debug_info("cipher-test", "\tsession_key: Got: %s\n", session_key);
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
211 gaim_debug_info("cipher-test", "\tsession_key: Wanted: %s\n", "939e7578ed9e3c518a452acee763bce9");
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
212
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
213 response = gaim_cipher_http_digest_calculate_response(
12389
7196ba664097 [gaim-migrate @ 14695]
Richard Laager <rlaager@pidgin.im>
parents: 12388
diff changeset
214 algorithm, method, digest_uri, qop, entity,
7196ba664097 [gaim-migrate @ 14695]
Richard Laager <rlaager@pidgin.im>
parents: 12388
diff changeset
215 nonce, nonce_count, client_nonce, session_key);
12382
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
216
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
217 g_free(session_key);
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
218
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
219 if (response == NULL)
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
220 {
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
221 gaim_debug_info("cipher-test",
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
222 "gaim_cipher_http_digest_calculate_session_key failed.\n");
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
223 }
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
224 else
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
225 {
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
226 gaim_debug_info("cipher-test", "\tresponse: Got: %s\n", response);
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
227 gaim_debug_info("cipher-test", "\tresponse: Wanted: %s\n", "6629fae49393a05397450978507c4ef1");
12387
913d216b13b2 [gaim-migrate @ 14693]
Richard Laager <rlaager@pidgin.im>
parents: 12382
diff changeset
228 g_free(response);
12382
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
229 }
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
230 }
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
231
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
232 gaim_debug_info("cipher-test", "HTTP Digest tests completed\n\n");
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
233 }
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
234
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
235 /**************************************************************************
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
236 * Plugin stuff
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
237 **************************************************************************/
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
238 static gboolean
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
239 plugin_load(GaimPlugin *plugin) {
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
240 cipher_test_md5();
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
241 cipher_test_sha1();
12382
5ef67596b420 [gaim-migrate @ 14688]
Richard Laager <rlaager@pidgin.im>
parents: 11256
diff changeset
242 cipher_test_digest();
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
243
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
244 return TRUE;
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
245 }
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
246
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10687
diff changeset
247 static gboolean
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10687
diff changeset
248 plugin_unload(GaimPlugin *plugin) {
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10687
diff changeset
249 return TRUE;
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10687
diff changeset
250 }
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10687
diff changeset
251
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
252 static GaimPluginInfo info =
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
253 {
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
254 GAIM_PLUGIN_MAGIC,
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
255 GAIM_MAJOR_VERSION,
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
256 GAIM_MINOR_VERSION,
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
257 GAIM_PLUGIN_STANDARD, /**< type */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
258 NULL, /**< ui_requirement */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
259 0, /**< flags */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
260 NULL, /**< dependencies */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
261 GAIM_PRIORITY_DEFAULT, /**< priority */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
262
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
263 "core-cipher-test", /**< id */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
264 N_("Cipher Test"), /**< name */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
265 VERSION, /**< version */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
266 /** summary */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
267 N_("Tests the ciphers that ship with gaim."),
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
268 /** description */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
269 N_("Tests the ciphers that ship with gaim."),
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
270 "Gary Kramlich <amc_grim@users.sf.net>", /**< author */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
271 GAIM_WEBSITE, /**< homepage */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
272
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
273 plugin_load, /**< load */
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10687
diff changeset
274 plugin_unload, /**< unload */
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
275 NULL, /**< destroy */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
276
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
277 NULL, /**< ui_info */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
278 NULL, /**< extra_info */
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
279 NULL,
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
280 NULL
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
281 };
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
282
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
283 static void
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
284 init_plugin(GaimPlugin *plugin) {
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
285 }
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
286
12459
fa06941b27e1 [gaim-migrate @ 14769]
Richard Laager <rlaager@pidgin.im>
parents: 12389
diff changeset
287 GAIM_INIT_PLUGIN(cipher_test, init_plugin, info)

mercurial