Fri, 27 Jun 2008 01:29:59 +0000
Working sound themes (option 1) theme is saved in prefs and there is no seperate custom theme, everything
else is backwards compatiable, sound plays but the theme is not always found
|
19687
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1 | /** |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2 | * @file gntcertmgr.c GNT Certificate Manager API |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
3 | * @ingroup finch |
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
4 | */ |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
5 | |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
6 | /* finch |
|
19687
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
7 | * |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
8 | * Finch is the legal property of its developers, whose names are too numerous |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
9 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
10 | * source distribution. |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
11 | * |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
12 | * This program is free software; you can redistribute it and/or modify |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
13 | * it under the terms of the GNU General Public License as published by |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
14 | * the Free Software Foundation; either version 2 of the License, or |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
15 | * (at your option) any later version. |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
16 | * |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
17 | * This program is distributed in the hope that it will be useful, |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
20 | * GNU General Public License for more details. |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
21 | * |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
22 | * You should have received a copy of the GNU General Public License |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
23 | * along with this program; if not, write to the Free Software |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19691
diff
changeset
|
24 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
19687
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
25 | * |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
26 | */ |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
27 | |
|
22340
5a20c8e2a79e
Include finch.h from these files, instead of internal.h.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22269
diff
changeset
|
28 | #include "finch.h" |
|
19691
1b2dab4c0f32
Fix building on older glib versions.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19687
diff
changeset
|
29 | |
|
19687
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
30 | #include "certificate.h" |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
31 | #include "debug.h" |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
32 | #include "notify.h" |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
33 | #include "request.h" |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
34 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
35 | #include "gntcertmgr.h" |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
36 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
37 | #include "gntbutton.h" |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
38 | #include "gntlabel.h" |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
39 | #include "gnttree.h" |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
40 | #include "gntutils.h" |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
41 | #include "gntwindow.h" |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
42 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
43 | struct { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
44 | GntWidget *window; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
45 | GntWidget *tree; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
46 | PurpleCertificatePool *pool; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
47 | } certmgr; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
48 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
49 | /* Pretty much Xerox of gtkcertmgr */ |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
50 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
51 | /* Add certificate */ |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
52 | static void |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
53 | tls_peers_mgmt_import_ok2_cb(gpointer data, const char *result) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
54 | { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
55 | PurpleCertificate *crt = (PurpleCertificate *) data; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
56 | const char *id = result; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
57 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
58 | /* TODO: Perhaps prompt if you're overwriting a cert? */ |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
59 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
60 | purple_certificate_pool_store(purple_certificate_find_pool("x509", "tls_peers"), id, crt); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
61 | purple_certificate_destroy(crt); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
62 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
63 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
64 | static void |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
65 | tls_peers_mgmt_import_cancel2_cb(gpointer data, const char *result) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
66 | { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
67 | PurpleCertificate *crt = (PurpleCertificate *) data; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
68 | purple_certificate_destroy(crt); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
69 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
70 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
71 | static void |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
72 | tls_peers_mgmt_import_ok_cb(gpointer data, const char *filename) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
73 | { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
74 | PurpleCertificateScheme *x509; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
75 | PurpleCertificate *crt; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
76 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
77 | x509 = purple_certificate_pool_get_scheme(purple_certificate_find_pool("x509", "tls_peers")); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
78 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
79 | crt = purple_certificate_import(x509, filename); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
80 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
81 | if (crt != NULL) { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
82 | gchar *default_hostname; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
83 | default_hostname = purple_certificate_get_subject_name(crt); |
|
21653
621c47778132
merge of '73ae9aeda3c58fbf8437421da68d19d06f93e686'
Evan Schoenberg <evands@pidgin.im>
parents:
21233
diff
changeset
|
84 | purple_request_input(NULL, |
|
19687
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
85 | _("Certificate Import"), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
86 | _("Specify a hostname"), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
87 | _("Type the host name this certificate is for."), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
88 | default_hostname, FALSE, FALSE, NULL, |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
89 | _("OK"), G_CALLBACK(tls_peers_mgmt_import_ok2_cb), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
90 | _("Cancel"), G_CALLBACK(tls_peers_mgmt_import_cancel2_cb), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
91 | NULL, NULL, NULL, |
|
21653
621c47778132
merge of '73ae9aeda3c58fbf8437421da68d19d06f93e686'
Evan Schoenberg <evands@pidgin.im>
parents:
21233
diff
changeset
|
92 | crt); |
|
19687
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
93 | g_free(default_hostname); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
94 | } else { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
95 | gchar * secondary; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
96 | secondary = g_strdup_printf(_("File %s could not be imported.\nMake sure that the file is readable and in PEM format.\n"), filename); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
97 | purple_notify_error(NULL, |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
98 | _("Certificate Import Error"), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
99 | _("X.509 certificate import failed"), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
100 | secondary); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
101 | g_free(secondary); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
102 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
103 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
104 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
105 | static void |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
106 | add_cert_cb(GntWidget *button, gpointer null) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
107 | { |
|
21653
621c47778132
merge of '73ae9aeda3c58fbf8437421da68d19d06f93e686'
Evan Schoenberg <evands@pidgin.im>
parents:
21233
diff
changeset
|
108 | purple_request_file(NULL, |
|
19687
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
109 | _("Select a PEM certificate"), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
110 | "certificate.pem", |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
111 | FALSE, |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
112 | G_CALLBACK(tls_peers_mgmt_import_ok_cb), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
113 | NULL, |
|
21653
621c47778132
merge of '73ae9aeda3c58fbf8437421da68d19d06f93e686'
Evan Schoenberg <evands@pidgin.im>
parents:
21233
diff
changeset
|
114 | NULL, NULL, NULL, NULL ); |
|
19687
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
115 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
116 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
117 | /* Save certs in some file */ |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
118 | static void |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
119 | tls_peers_mgmt_export_ok_cb(gpointer data, const char *filename) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
120 | { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
121 | PurpleCertificate *crt = (PurpleCertificate *) data; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
122 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
123 | if (!purple_certificate_export(filename, crt)) { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
124 | gchar * secondary; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
125 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
126 | secondary = g_strdup_printf(_("Export to file %s failed.\nCheck that you have write permission to the target path\n"), filename); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
127 | purple_notify_error(NULL, |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
128 | _("Certificate Export Error"), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
129 | _("X.509 certificate export failed"), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
130 | secondary); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
131 | g_free(secondary); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
132 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
133 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
134 | purple_certificate_destroy(crt); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
135 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
136 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
137 | static void |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
138 | save_cert_cb(GntWidget *button, gpointer null) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
139 | { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
140 | PurpleCertificate *crt; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
141 | const char *key; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
142 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
143 | if (!certmgr.window) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
144 | return; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
145 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
146 | key = gnt_tree_get_selection_data(GNT_TREE(certmgr.tree)); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
147 | if (!key) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
148 | return; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
149 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
150 | crt = purple_certificate_pool_retrieve(certmgr.pool, key); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
151 | if (!crt) { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
152 | purple_debug_error("gntcertmgr/tls_peers_mgmt", |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
153 | "Id %s was not in the peers cache?!\n", key); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
154 | return; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
155 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
156 | |
|
21653
621c47778132
merge of '73ae9aeda3c58fbf8437421da68d19d06f93e686'
Evan Schoenberg <evands@pidgin.im>
parents:
21233
diff
changeset
|
157 | purple_request_file((void*)key, |
|
19687
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
158 | _("PEM X.509 Certificate Export"), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
159 | "certificate.pem", TRUE, |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
160 | G_CALLBACK(tls_peers_mgmt_export_ok_cb), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
161 | G_CALLBACK(purple_certificate_destroy), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
162 | NULL, NULL, NULL, |
|
21653
621c47778132
merge of '73ae9aeda3c58fbf8437421da68d19d06f93e686'
Evan Schoenberg <evands@pidgin.im>
parents:
21233
diff
changeset
|
163 | crt); |
|
19687
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
164 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
165 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
166 | /* Show information about a cert */ |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
167 | static void |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
168 | info_cert_cb(GntWidget *button, gpointer null) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
169 | { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
170 | const char *key; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
171 | PurpleCertificate *crt; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
172 | gchar *subject; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
173 | GByteArray *fpr_sha1; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
174 | gchar *fpr_sha1_asc; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
175 | gchar *primary, *secondary; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
176 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
177 | if (!certmgr.window) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
178 | return; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
179 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
180 | key = gnt_tree_get_selection_data(GNT_TREE(certmgr.tree)); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
181 | if (!key) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
182 | return; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
183 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
184 | crt = purple_certificate_pool_retrieve(certmgr.pool, key); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
185 | g_return_if_fail(crt); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
186 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
187 | primary = g_strdup_printf(_("Certificate for %s"), key); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
188 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
189 | fpr_sha1 = purple_certificate_get_fingerprint_sha1(crt); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
190 | fpr_sha1_asc = purple_base16_encode_chunked(fpr_sha1->data, |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
191 | fpr_sha1->len); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
192 | subject = purple_certificate_get_subject_name(crt); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
193 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
194 | secondary = g_strdup_printf(_("Common name: %s\n\nSHA1 fingerprint:\n%s"), subject, fpr_sha1_asc); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
195 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
196 | purple_notify_info(NULL, |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
197 | _("SSL Host Certificate"), primary, secondary); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
198 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
199 | g_free(primary); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
200 | g_free(secondary); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
201 | g_byte_array_free(fpr_sha1, TRUE); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
202 | g_free(fpr_sha1_asc); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
203 | g_free(subject); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
204 | purple_certificate_destroy(crt); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
205 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
206 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
207 | /* Delete a cert */ |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
208 | static void |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
209 | tls_peers_mgmt_delete_confirm_cb(gchar *id, gint dontcare) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
210 | { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
211 | if (!purple_certificate_pool_delete(certmgr.pool, id)) { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
212 | purple_debug_warning("gntcertmgr/tls_peers_mgmt", |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
213 | "Deletion failed on id %s\n", id); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
214 | }; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
215 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
216 | g_free(id); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
217 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
218 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
219 | static void |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
220 | delete_cert_cb(GntWidget *button, gpointer null) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
221 | { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
222 | gchar *primary; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
223 | const char *key; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
224 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
225 | if (!certmgr.window) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
226 | return; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
227 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
228 | key = gnt_tree_get_selection_data(GNT_TREE(certmgr.tree)); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
229 | if (!key) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
230 | return; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
231 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
232 | primary = g_strdup_printf(_("Really delete certificate for %s?"), key); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
233 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
234 | purple_request_close_with_handle((void *)key); |
|
21653
621c47778132
merge of '73ae9aeda3c58fbf8437421da68d19d06f93e686'
Evan Schoenberg <evands@pidgin.im>
parents:
21233
diff
changeset
|
235 | purple_request_yes_no((void *)key, _("Confirm certificate delete"), |
|
19687
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
236 | primary, NULL, |
|
22385
d14ac3ae2007
The Gnome Human Interface Guidelines say, "if pressing this button by
Mark Doliner <markdoliner@pidgin.im>
parents:
22340
diff
changeset
|
237 | 0, |
|
21653
621c47778132
merge of '73ae9aeda3c58fbf8437421da68d19d06f93e686'
Evan Schoenberg <evands@pidgin.im>
parents:
21233
diff
changeset
|
238 | NULL, NULL, NULL, |
|
19687
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
239 | g_strdup(key), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
240 | tls_peers_mgmt_delete_confirm_cb, |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
241 | g_free); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
242 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
243 | g_free(primary); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
244 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
245 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
246 | /* populate the list */ |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
247 | static void |
|
22104
56970903b8e9
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents:
21653
diff
changeset
|
248 | populate_cert_list(void) |
|
19687
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
249 | { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
250 | GList *idlist, *l; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
251 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
252 | if (!certmgr.window) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
253 | return; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
254 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
255 | gnt_tree_remove_all(GNT_TREE(certmgr.tree)); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
256 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
257 | idlist = purple_certificate_pool_get_idlist(purple_certificate_find_pool("x509", "tls_peers")); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
258 | for (l = idlist; l; l = l->next) { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
259 | gnt_tree_add_row_last(GNT_TREE(certmgr.tree), g_strdup(l->data), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
260 | gnt_tree_create_row(GNT_TREE(certmgr.tree), l->data), NULL); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
261 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
262 | purple_certificate_pool_destroy_idlist(idlist); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
263 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
264 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
265 | static void |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
266 | cert_list_added(PurpleCertificatePool *pool, const char *id, gpointer null) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
267 | { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
268 | g_return_if_fail(certmgr.window); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
269 | gnt_tree_add_row_last(GNT_TREE(certmgr.tree), g_strdup(id), |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
270 | gnt_tree_create_row(GNT_TREE(certmgr.tree), id), NULL); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
271 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
272 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
273 | static void |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
274 | cert_list_removed(PurpleCertificatePool *pool, const char *id, gpointer null) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
275 | { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
276 | g_return_if_fail(certmgr.window); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
277 | purple_request_close_with_handle((void*)id); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
278 | gnt_tree_remove(GNT_TREE(certmgr.tree), (void*)id); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
279 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
280 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
281 | void finch_certmgr_show(void) |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
282 | { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
283 | GntWidget *win, *tree, *box, *button; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
284 | PurpleCertificatePool *pool; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
285 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
286 | if (certmgr.window) { |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
287 | gnt_window_present(certmgr.window); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
288 | return; |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
289 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
290 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
291 | certmgr.window = win = gnt_vwindow_new(FALSE); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
292 | gnt_box_set_title(GNT_BOX(win), _("Certificate Manager")); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
293 | gnt_box_set_pad(GNT_BOX(win), 0); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
294 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
295 | certmgr.tree = tree = gnt_tree_new(); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
296 | gnt_tree_set_hash_fns(GNT_TREE(tree), g_str_hash, g_str_equal, g_free); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
297 | gnt_tree_set_column_title(GNT_TREE(tree), 0, _("Hostname")); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
298 | gnt_tree_set_show_title(GNT_TREE(tree), TRUE); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
299 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
300 | gnt_box_add_widget(GNT_BOX(win), tree); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
301 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
302 | box = gnt_hbox_new(FALSE); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
303 | gnt_box_add_widget(GNT_BOX(win), box); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
304 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
305 | button = gnt_button_new(_("Add")); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
306 | gnt_box_add_widget(GNT_BOX(box), button); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
307 | g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(add_cert_cb), NULL); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
308 | gnt_util_set_trigger_widget(GNT_WIDGET(tree), GNT_KEY_INS, button); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
309 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
310 | button = gnt_button_new(_("Save")); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
311 | gnt_box_add_widget(GNT_BOX(box), button); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
312 | g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(save_cert_cb), NULL); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
313 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
314 | button = gnt_button_new(_("Info")); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
315 | gnt_box_add_widget(GNT_BOX(box), button); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
316 | g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(info_cert_cb), NULL); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
317 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
318 | button = gnt_button_new(_("Delete")); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
319 | gnt_box_add_widget(GNT_BOX(box), button); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
320 | g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(delete_cert_cb), NULL); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
321 | gnt_util_set_trigger_widget(GNT_WIDGET(tree), GNT_KEY_DEL, button); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
322 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
323 | button = gnt_button_new(_("Close")); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
324 | gnt_box_add_widget(GNT_BOX(box), button); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
325 | g_signal_connect_swapped(G_OBJECT(button), "activate", G_CALLBACK(gnt_widget_destroy), win); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
326 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
327 | g_signal_connect_swapped(G_OBJECT(win), "destroy", G_CALLBACK(g_nullify_pointer), &certmgr.window); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
328 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
329 | populate_cert_list(); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
330 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
331 | pool = certmgr.pool = purple_certificate_find_pool("x509", "tls_peers"); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
332 | purple_signal_connect(pool, "certificate-stored", |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
333 | win, PURPLE_CALLBACK(cert_list_added), NULL); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
334 | purple_signal_connect(pool, "certificate-deleted", |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
335 | win, PURPLE_CALLBACK(cert_list_removed), NULL); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
336 | g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK(purple_signals_disconnect_by_handle), NULL); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
337 | |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
338 | gnt_widget_show(certmgr.window); |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
339 | } |
|
13159f49d3a8
Add certificate UI in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
340 |