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