annotate libpurple/certificate.h @ 32827:4a34689eeb33 default tip

merged from im.pidgin.pidgin
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Sat, 19 Nov 2011 14:42:54 +0900
parents 02a2e8183b1d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17638
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
1 /**
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
2 * @file certificate.h Public-Key Certificate API
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
3 * @ingroup core
20800
0077d3b6ecd2 Patch from nix_nix to add some links to signal documentation.
Will Thompson <will.thompson@collabora.co.uk>
parents: 19680
diff changeset
4 * @see @ref certificate-signals
17638
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
5 */
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
6
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
7 /*
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
8 *
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
9 * purple
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
10 *
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
11 * Purple is the legal property of its developers, whose names are too numerous
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
12 * to list here. Please refer to the COPYRIGHT file distributed with this
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
13 * source distribution.
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
14 *
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
15 * This program is free software; you can redistribute it and/or modify
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
16 * it under the terms of the GNU General Public License as published by
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
17 * the Free Software Foundation; either version 2 of the License, or
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
18 * (at your option) any later version.
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
19 *
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
20 * This program is distributed in the hope that it will be useful,
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
23 * GNU General Public License for more details.
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
24 *
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
25 * You should have received a copy of the GNU General Public License
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
26 * along with this program; if not, write to the Free Software
19680
44b4e8bd759b The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19661
diff changeset
27 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
17638
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
28 */
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
29
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
30 #ifndef _PURPLE_CERTIFICATE_H
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
31 #define _PURPLE_CERTIFICATE_H
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
32
22267
7f7c89ff5cc7 felipec noticed that this include was missing.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 21647
diff changeset
33 #include <time.h>
7f7c89ff5cc7 felipec noticed that this include was missing.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 21647
diff changeset
34
17638
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
35 #include <glib.h>
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
36
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
37 #ifdef __cplusplus
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
38 extern "C" {
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
39 #endif /* __cplusplus */
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
40
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
41
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
42 typedef enum
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
43 {
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
44 PURPLE_CERTIFICATE_INVALID = 0,
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
45 PURPLE_CERTIFICATE_VALID = 1
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
46 } PurpleCertificateVerificationStatus;
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
47
18189
030a2209ae96 - Style issues
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18188
diff changeset
48 typedef struct _PurpleCertificate PurpleCertificate;
18970
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
49 typedef struct _PurpleCertificatePool PurpleCertificatePool;
18189
030a2209ae96 - Style issues
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18188
diff changeset
50 typedef struct _PurpleCertificateScheme PurpleCertificateScheme;
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
51 typedef struct _PurpleCertificateVerifier PurpleCertificateVerifier;
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
52 typedef struct _PurpleCertificateVerificationRequest PurpleCertificateVerificationRequest;
17638
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
53
18940
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
54 /**
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
55 * Callback function for the results of a verification check
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
56 * @param st Status code
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
57 * @param userdata User-defined data
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
58 */
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
59 typedef void (*PurpleCertificateVerifiedCallback)
18953
89b32569890c - Add purple_certificate_get_fingerprint_sha1
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18952
diff changeset
60 (PurpleCertificateVerificationStatus st,
18940
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
61 gpointer userdata);
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22267
diff changeset
62
17641
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17640
diff changeset
63 /** A certificate instance
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17640
diff changeset
64 *
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17640
diff changeset
65 * An opaque data structure representing a single certificate under some
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17640
diff changeset
66 * CertificateScheme
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17640
diff changeset
67 */
18189
030a2209ae96 - Style issues
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18188
diff changeset
68 struct _PurpleCertificate
17641
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17640
diff changeset
69 {
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17640
diff changeset
70 /** Scheme this certificate is under */
18189
030a2209ae96 - Style issues
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18188
diff changeset
71 PurpleCertificateScheme * scheme;
17641
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17640
diff changeset
72 /** Opaque pointer to internal data */
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17640
diff changeset
73 gpointer data;
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17640
diff changeset
74 };
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17640
diff changeset
75
18970
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
76 /**
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
77 * Database for retrieval or storage of Certificates
18983
bb4acabd8fac Documentation
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18982
diff changeset
78 *
18995
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
79 * More or less a hash table; all lookups and writes are controlled by a string
18983
bb4acabd8fac Documentation
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18982
diff changeset
80 * key.
18970
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
81 */
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
82 struct _PurpleCertificatePool
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
83 {
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
84 /** Scheme this Pool operates for */
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
85 gchar *scheme_name;
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
86 /** Internal name to refer to the pool by */
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
87 gchar *name;
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
88
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
89 /** User-friendly name for this type
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
90 * ex: N_("SSL Servers")
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
91 * When this is displayed anywhere, it should be i18ned
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
92 * ex: _(pool->fullname)
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
93 */
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
94 gchar *fullname;
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
95
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
96 /** Internal pool data */
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
97 gpointer data;
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22267
diff changeset
98
18970
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
99 /**
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
100 * Set up the Pool's internal state
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
101 *
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
102 * Upon calling purple_certificate_register_pool() , this function will
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
103 * be called. May be NULL.
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
104 * @return TRUE if the initialization succeeded, otherwise FALSE
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
105 */
18975
172b8d1dc2be - CertificatePool member functions no longer accept a Pool instance, as Pools are expected to be singletons
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18974
diff changeset
106 gboolean (* init)(void);
18970
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
107
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
108 /**
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
109 * Uninit the Pool's internal state
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
110 *
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
111 * Will be called by purple_certificate_unregister_pool() . May be NULL
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
112 */
18975
172b8d1dc2be - CertificatePool member functions no longer accept a Pool instance, as Pools are expected to be singletons
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18974
diff changeset
113 void (* uninit)(void);
18970
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
114
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
115 /** Check for presence of a certificate in the pool using unique ID */
18974
6b7c234b4984 - cert_in_pool_by_id is now just cert_in_pool; finding the uniqueID of the Certificate wanted is entirely the caller's problem
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18971
diff changeset
116 gboolean (* cert_in_pool)(const gchar *id);
18970
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
117 /** Retrieve a PurpleCertificate from the pool */
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
118 PurpleCertificate * (* get_cert)(const gchar *id);
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
119 /** Add a certificate to the pool. Must overwrite any other
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
120 * certificates sharing the same ID in the pool.
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
121 * @return TRUE if the operation succeeded, otherwise FALSE
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
122 */
18982
8948cd6bb8bc - CertificatePool put_cert now accepts an id argument
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18977
diff changeset
123 gboolean (* put_cert)(const gchar *id, PurpleCertificate *crt);
19049
8cbc110456ac - Add purple_certificate_pool_delete
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19034
diff changeset
124 /** Delete a certificate from the pool */
8cbc110456ac - Add purple_certificate_pool_delete
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19034
diff changeset
125 gboolean (* delete_cert)(const gchar *id);
19026
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
126
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
127 /** Returns a list of IDs stored in the pool */
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
128 GList * (* get_idlist)(void);
19648
450f4a3c4c0f - Add purple_reserved fields to various structures.
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19329
diff changeset
129
450f4a3c4c0f - Add purple_reserved fields to various structures.
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19329
diff changeset
130 void (*_purple_reserved1)(void);
450f4a3c4c0f - Add purple_reserved fields to various structures.
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19329
diff changeset
131 void (*_purple_reserved2)(void);
450f4a3c4c0f - Add purple_reserved fields to various structures.
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19329
diff changeset
132 void (*_purple_reserved3)(void);
450f4a3c4c0f - Add purple_reserved fields to various structures.
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19329
diff changeset
133 void (*_purple_reserved4)(void);
18970
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
134 };
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
135
17638
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
136 /** A certificate type
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
137 *
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
138 * A CertificateScheme must implement all of the fields in the structure,
18936
895831f93380 - Documentation correction
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18934
diff changeset
139 * and register it using purple_certificate_register_scheme()
17638
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
140 *
17640
945b60f02767 - Fixed a comment
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17638
diff changeset
141 * There may be only ONE CertificateScheme provided for each certificate
945b60f02767 - Fixed a comment
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17638
diff changeset
142 * type, as specified by the "name" field.
17638
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
143 */
18189
030a2209ae96 - Style issues
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18188
diff changeset
144 struct _PurpleCertificateScheme
17638
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
145 {
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
146 /** Name of the certificate type
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
147 * ex: "x509", "pgp", etc.
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
148 * This must be globally unique - you may not register more than one
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
149 * CertificateScheme of the same name at a time.
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
150 */
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
151 gchar * name;
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
152
18188
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
153 /** User-friendly name for this type
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
154 * ex: N_("X.509 Certificates")
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
155 * When this is displayed anywhere, it should be i18ned
18970
3d63bd78675d - Add CertificatePool struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18962
diff changeset
156 * ex: _(scheme->fullname)
18188
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
157 */
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
158 gchar * fullname;
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
159
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
160 /** Imports a certificate from a file
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
161 *
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
162 * @param filename File to import the certificate from
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
163 * @return Pointer to the newly allocated Certificate struct
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
164 * or NULL on failure.
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
165 */
18190
b2d110e9857f - Eliminate compiler warning
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18189
diff changeset
166 PurpleCertificate * (* import_certificate)(const gchar * filename);
18188
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
167
18977
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
168 /**
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
169 * Exports a certificate to a file
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
170 *
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
171 * @param filename File to export the certificate to
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
172 * @param crt Certificate to export
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
173 * @return TRUE if the export succeeded, otherwise FALSE
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
174 * @see purple_certificate_export()
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
175 */
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
176 gboolean (* export_certificate)(const gchar *filename, PurpleCertificate *crt);
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
177
19018
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
178 /**
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
179 * Duplicates a certificate
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
180 *
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
181 * Certificates are generally assumed to be read-only, so feel free to
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
182 * do any sort of reference-counting magic you want here. If this ever
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
183 * changes, please remember to change the magic accordingly.
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
184 * @return Reference to the new copy
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
185 */
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
186 PurpleCertificate * (* copy_certificate)(PurpleCertificate *crt);
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
187
18188
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
188 /** Destroys and frees a Certificate structure
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
189 *
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
190 * Destroys a Certificate's internal data structures and calls
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
191 * free(crt)
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
192 *
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
193 * @param crt Certificate instance to be destroyed. It WILL NOT be
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
194 * destroyed if it is not of the correct
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
195 * CertificateScheme. Can be NULL
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17641
diff changeset
196 */
18189
030a2209ae96 - Style issues
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18188
diff changeset
197 void (* destroy_certificate)(PurpleCertificate * crt);
18934
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
198
19076
daa68185a018 - Add purple_certificate_signed_by
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19067
diff changeset
199 /** Find whether "crt" has a valid signature from issuer "issuer"
daa68185a018 - Add purple_certificate_signed_by
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19067
diff changeset
200 * @see purple_certificate_signed_by() */
daa68185a018 - Add purple_certificate_signed_by
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19067
diff changeset
201 gboolean (*signed_by)(PurpleCertificate *crt, PurpleCertificate *issuer);
18934
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
202 /**
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
203 * Retrieves the certificate public key fingerprint using SHA1
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
204 *
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
205 * @param crt Certificate instance
18937
eac58c6caae7 - More documentation
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18936
diff changeset
206 * @return Binary representation of SHA1 hash - must be freed using
eac58c6caae7 - More documentation
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18936
diff changeset
207 * g_byte_array_free()
18934
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
208 */
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
209 GByteArray * (* get_fingerprint_sha1)(PurpleCertificate *crt);
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
210
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
211 /**
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
212 * Retrieves a unique certificate identifier
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
213 *
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
214 * @param crt Certificate instance
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
215 * @return Newly allocated string that can be used to uniquely
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
216 * identify the certificate.
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
217 */
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
218 gchar * (* get_unique_id)(PurpleCertificate *crt);
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
219
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
220 /**
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
221 * Retrieves a unique identifier for the certificate's issuer
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
222 *
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
223 * @param crt Certificate instance
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
224 * @return Newly allocated string that can be used to uniquely
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
225 * identify the issuer's certificate.
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
226 */
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
227 gchar * (* get_issuer_unique_id)(PurpleCertificate *crt);
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
228
18962
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
229 /**
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
230 * Gets the certificate subject's name
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
231 *
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
232 * For X.509, this is the "Common Name" field, as we're only using it
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
233 * for hostname verification at the moment
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
234 *
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
235 * @see purple_certificate_get_subject_name()
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
236 *
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
237 * @param crt Certificate instance
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
238 * @return Newly allocated string with the certificate subject.
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
239 */
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
240 gchar * (* get_subject_name)(PurpleCertificate *crt);
19006
dc60287ce426 - Add get_activation_time and get_expiration_time to CertificateScheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18995
diff changeset
241
19008
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
242 /**
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
243 * Check the subject name against that on the certificate
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
244 * @see purple_certificate_check_subject_name()
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
245 * @return TRUE if it is a match, else FALSE
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
246 */
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
247 gboolean (* check_subject_name)(PurpleCertificate *crt, const gchar *name);
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
248
19067
6c0aad79c4c5 - Change the internal structure of activation/expiration times to match
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19060
diff changeset
249 /** Retrieve the certificate activation/expiration times */
6c0aad79c4c5 - Change the internal structure of activation/expiration times to match
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19060
diff changeset
250 gboolean (* get_times)(PurpleCertificate *crt, time_t *activation, time_t *expiration);
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22267
diff changeset
251
30050
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
252 /** Imports certificates from a file
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
253 *
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
254 * @param filename File to import the certificates from
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
255 * @return GSList of pointers to the newly allocated Certificate structs
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
256 * or NULL on failure.
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
257 */
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
258 GSList * (* import_certificates)(const gchar * filename);
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
259
19648
450f4a3c4c0f - Add purple_reserved fields to various structures.
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19329
diff changeset
260 void (*_purple_reserved1)(void);
450f4a3c4c0f - Add purple_reserved fields to various structures.
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19329
diff changeset
261 void (*_purple_reserved2)(void);
450f4a3c4c0f - Add purple_reserved fields to various structures.
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19329
diff changeset
262 void (*_purple_reserved3)(void);
17638
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
263 };
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
264
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
265 /** A set of operations used to provide logic for verifying a Certificate's
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
266 * authenticity.
18941
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
267 *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
268 * A Verifier provider must fill out these fields, then register it using
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
269 * purple_certificate_register_verifier()
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
270 *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
271 * The (scheme_name, name) value must be unique for each Verifier - you may not
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
272 * register more than one Verifier of the same name for each Scheme
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
273 */
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
274 struct _PurpleCertificateVerifier
18940
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
275 {
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
276 /** Name of the scheme this Verifier operates on
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
277 *
18940
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
278 * The scheme will be looked up by name when a Request is generated
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
279 * using this Verifier
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
280 */
18940
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
281 gchar *scheme_name;
18941
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
282
18951
11e88e451bfb - Reorder struct for clarity
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18950
diff changeset
283 /** Name of the Verifier - case insensitive */
11e88e451bfb - Reorder struct for clarity
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18950
diff changeset
284 gchar *name;
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22267
diff changeset
285
18941
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
286 /**
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
287 * Start the verification process
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
288 *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
289 * To be called from purple_certificate_verify once it has
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
290 * constructed the request. This will use the information in the
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
291 * given VerificationRequest to check the certificate and callback
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
292 * the requester with the verification results.
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
293 *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
294 * @param vrq Request to process
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
295 */
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
296 void (* start_verification)(PurpleCertificateVerificationRequest *vrq);
18947
3c6bf77bf7c4 - Add purple_certificate_verify_destroy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18946
diff changeset
297
3c6bf77bf7c4 - Add purple_certificate_verify_destroy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18946
diff changeset
298 /**
3c6bf77bf7c4 - Add purple_certificate_verify_destroy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18946
diff changeset
299 * Destroy a completed Request under this Verifier
18952
974d110cf7b1 - libpurple is now responsible for some cleanup and final deletion of a
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18951
diff changeset
300 * The function pointed to here is only responsible for cleaning up
974d110cf7b1 - libpurple is now responsible for some cleanup and final deletion of a
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18951
diff changeset
301 * whatever PurpleCertificateVerificationRequest::data points to.
974d110cf7b1 - libpurple is now responsible for some cleanup and final deletion of a
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18951
diff changeset
302 * It should not call free(vrq)
18947
3c6bf77bf7c4 - Add purple_certificate_verify_destroy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18946
diff changeset
303 *
3c6bf77bf7c4 - Add purple_certificate_verify_destroy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18946
diff changeset
304 * @param vrq Request to destroy
3c6bf77bf7c4 - Add purple_certificate_verify_destroy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18946
diff changeset
305 */
3c6bf77bf7c4 - Add purple_certificate_verify_destroy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18946
diff changeset
306 void (* destroy_request)(PurpleCertificateVerificationRequest *vrq);
19648
450f4a3c4c0f - Add purple_reserved fields to various structures.
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19329
diff changeset
307
450f4a3c4c0f - Add purple_reserved fields to various structures.
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19329
diff changeset
308 void (*_purple_reserved1)(void);
450f4a3c4c0f - Add purple_reserved fields to various structures.
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19329
diff changeset
309 void (*_purple_reserved2)(void);
450f4a3c4c0f - Add purple_reserved fields to various structures.
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19329
diff changeset
310 void (*_purple_reserved3)(void);
450f4a3c4c0f - Add purple_reserved fields to various structures.
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19329
diff changeset
311 void (*_purple_reserved4)(void);
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
312 };
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
313
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
314 /** Structure for a single certificate request
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
315 *
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
316 * Useful for keeping track of the state of a verification that involves
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
317 * several steps
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
318 */
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
319 struct _PurpleCertificateVerificationRequest
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
320 {
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
321 /** Reference to the verification logic used */
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
322 PurpleCertificateVerifier *verifier;
18941
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
323 /** Reference to the scheme used.
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
324 *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
325 * This is looked up from the Verifier when the Request is generated
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
326 */
18942
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
327 PurpleCertificateScheme *scheme;
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
328
18940
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
329 /**
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
330 * Name to check that the certificate is issued to
18931
e634122cec47 - purple_ssl_get_peer_certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18928
diff changeset
331 *
e634122cec47 - purple_ssl_get_peer_certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18928
diff changeset
332 * For X.509 certificates, this is the Common Name
e634122cec47 - purple_ssl_get_peer_certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18928
diff changeset
333 */
e634122cec47 - purple_ssl_get_peer_certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18928
diff changeset
334 gchar *subject_name;
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22267
diff changeset
335
18931
e634122cec47 - purple_ssl_get_peer_certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18928
diff changeset
336 /** List of certificates in the chain to be verified (such as that returned by purple_ssl_get_peer_certificates )
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
337 *
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
338 * This is most relevant for X.509 certificates used in SSL sessions.
18931
e634122cec47 - purple_ssl_get_peer_certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18928
diff changeset
339 * The list order should be: certificate, issuer, issuer's issuer, etc.
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
340 */
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
341 GList *cert_chain;
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22267
diff changeset
342
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
343 /** Internal data used by the Verifier code */
18940
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
344 gpointer data;
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
345
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
346 /** Function to call with the verification result */
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
347 PurpleCertificateVerifiedCallback cb;
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
348 /** Data to pass to the post-verification callback */
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
349 gpointer cb_data;
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
350 };
17638
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
351
18945
fa42d8fa7873 - Documentation segmentation
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18942
diff changeset
352 /*****************************************************************************/
18994
bf23d58ec9c3 - Rearrange certificate.h for better organization
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18989
diff changeset
353 /** @name Certificate Verification Functions */
18945
fa42d8fa7873 - Documentation segmentation
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18942
diff changeset
354 /*****************************************************************************/
fa42d8fa7873 - Documentation segmentation
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18942
diff changeset
355 /*@{*/
fa42d8fa7873 - Documentation segmentation
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18942
diff changeset
356
18942
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
357 /**
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
358 * Constructs a verification request and passed control to the specified Verifier
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
359 *
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
360 * It is possible that the callback will be called immediately upon calling
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
361 * this function. Plan accordingly.
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
362 *
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
363 * @param verifier Verification logic to use.
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
364 * @see purple_certificate_find_verifier()
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
365 *
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
366 * @param subject_name Name that should match the first certificate in the
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
367 * chain for the certificate to be valid. Will be strdup'd
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
368 * into the Request struct
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
369 *
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
370 * @param cert_chain Certificate chain to check. If there is more than one
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
371 * certificate in the chain (X.509), the peer's
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
372 * certificate comes first, then the issuer/signer's
19021
fcca10d0ac7d - purple_certificate_verify no longer takes possession of the
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19020
diff changeset
373 * certificate, etc. The whole list is duplicated into the
fcca10d0ac7d - purple_certificate_verify no longer takes possession of the
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19020
diff changeset
374 * Request struct.
18942
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
375 *
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
376 * @param cb Callback function to be called with whether the
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
377 * certificate was approved or not.
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
378 * @param cb_data User-defined data for the above.
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
379 */
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
380 void
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
381 purple_certificate_verify (PurpleCertificateVerifier *verifier,
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
382 const gchar *subject_name, GList *cert_chain,
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
383 PurpleCertificateVerifiedCallback cb,
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
384 gpointer cb_data);
02102eccc4be - purple_certificate_verify now takes a Verifier argument, creates its
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18941
diff changeset
385
18946
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
386 /**
19088
f5802217844d - Add verify_complete, which should deprecate verify_destroy
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19082
diff changeset
387 * Completes and destroys a VerificationRequest
f5802217844d - Add verify_complete, which should deprecate verify_destroy
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19082
diff changeset
388 *
f5802217844d - Add verify_complete, which should deprecate verify_destroy
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19082
diff changeset
389 * @param vrq Request to conclude
f5802217844d - Add verify_complete, which should deprecate verify_destroy
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19082
diff changeset
390 * @param st Success/failure code to pass to the request's
f5802217844d - Add verify_complete, which should deprecate verify_destroy
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19082
diff changeset
391 * completion callback.
f5802217844d - Add verify_complete, which should deprecate verify_destroy
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19082
diff changeset
392 */
f5802217844d - Add verify_complete, which should deprecate verify_destroy
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19082
diff changeset
393 void
f5802217844d - Add verify_complete, which should deprecate verify_destroy
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19082
diff changeset
394 purple_certificate_verify_complete(PurpleCertificateVerificationRequest *vrq,
f5802217844d - Add verify_complete, which should deprecate verify_destroy
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19082
diff changeset
395 PurpleCertificateVerificationStatus st);
f5802217844d - Add verify_complete, which should deprecate verify_destroy
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19082
diff changeset
396
18994
bf23d58ec9c3 - Rearrange certificate.h for better organization
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18989
diff changeset
397 /*@}*/
bf23d58ec9c3 - Rearrange certificate.h for better organization
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18989
diff changeset
398
bf23d58ec9c3 - Rearrange certificate.h for better organization
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18989
diff changeset
399 /*****************************************************************************/
bf23d58ec9c3 - Rearrange certificate.h for better organization
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18989
diff changeset
400 /** @name Certificate Functions */
bf23d58ec9c3 - Rearrange certificate.h for better organization
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18989
diff changeset
401 /*****************************************************************************/
bf23d58ec9c3 - Rearrange certificate.h for better organization
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18989
diff changeset
402 /*@{*/
bf23d58ec9c3 - Rearrange certificate.h for better organization
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18989
diff changeset
403
18947
3c6bf77bf7c4 - Add purple_certificate_verify_destroy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18946
diff changeset
404 /**
19018
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
405 * Makes a duplicate of a certificate
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
406 *
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
407 * @param crt Instance to duplicate
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
408 * @return Pointer to new instance
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
409 */
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
410 PurpleCertificate *
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
411 purple_certificate_copy(PurpleCertificate *crt);
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
412
d6f902265076 - Add purple_certificate_copy and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19012
diff changeset
413 /**
19020
d69355001a6e - Add purple_certificate_copy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19018
diff changeset
414 * Duplicates an entire list of certificates
d69355001a6e - Add purple_certificate_copy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19018
diff changeset
415 *
d69355001a6e - Add purple_certificate_copy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19018
diff changeset
416 * @param crt_list List to duplicate
d69355001a6e - Add purple_certificate_copy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19018
diff changeset
417 * @return New list copy
d69355001a6e - Add purple_certificate_copy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19018
diff changeset
418 */
d69355001a6e - Add purple_certificate_copy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19018
diff changeset
419 GList *
d69355001a6e - Add purple_certificate_copy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19018
diff changeset
420 purple_certificate_copy_list(GList *crt_list);
d69355001a6e - Add purple_certificate_copy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19018
diff changeset
421
d69355001a6e - Add purple_certificate_copy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19018
diff changeset
422 /**
18946
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
423 * Destroys and free()'s a Certificate
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
424 *
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
425 * @param crt Instance to destroy. May be NULL.
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
426 */
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
427 void
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
428 purple_certificate_destroy (PurpleCertificate *crt);
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
429
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
430 /**
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
431 * Destroy an entire list of Certificate instances and the containing list
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
432 *
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
433 * @param crt_list List of certificates to destroy. May be NULL.
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
434 */
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
435 void
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
436 purple_certificate_destroy_list (GList * crt_list);
617447a71ab7 - Add certificate_destroy and certificate_destroy_list
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18945
diff changeset
437
18953
89b32569890c - Add purple_certificate_get_fingerprint_sha1
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18952
diff changeset
438 /**
19076
daa68185a018 - Add purple_certificate_signed_by
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19067
diff changeset
439 * Check whether 'crt' has a valid signature made by 'issuer'
daa68185a018 - Add purple_certificate_signed_by
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19067
diff changeset
440 *
daa68185a018 - Add purple_certificate_signed_by
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19067
diff changeset
441 * @param crt Certificate instance to check signature of
daa68185a018 - Add purple_certificate_signed_by
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19067
diff changeset
442 * @param issuer Certificate thought to have signed 'crt'
daa68185a018 - Add purple_certificate_signed_by
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19067
diff changeset
443 *
daa68185a018 - Add purple_certificate_signed_by
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19067
diff changeset
444 * @return TRUE if 'crt' has a valid signature made by 'issuer',
daa68185a018 - Add purple_certificate_signed_by
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19067
diff changeset
445 * otherwise FALSE
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22267
diff changeset
446 * @todo Find a way to give the reason (bad signature, not the issuer, etc.)
19076
daa68185a018 - Add purple_certificate_signed_by
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19067
diff changeset
447 */
daa68185a018 - Add purple_certificate_signed_by
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19067
diff changeset
448 gboolean
daa68185a018 - Add purple_certificate_signed_by
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19067
diff changeset
449 purple_certificate_signed_by(PurpleCertificate *crt, PurpleCertificate *issuer);
daa68185a018 - Add purple_certificate_signed_by
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19067
diff changeset
450
daa68185a018 - Add purple_certificate_signed_by
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19067
diff changeset
451 /**
27999
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
452 * Check that a certificate chain is valid and, if not, the failing certificate.
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
453 *
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
454 * Uses purple_certificate_signed_by() to verify that each PurpleCertificate
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
455 * in the chain carries a valid signature from the next. A single-certificate
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
456 * chain is considered to be valid.
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
457 *
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
458 * @param chain List of PurpleCertificate instances comprising the chain,
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
459 * in the order certificate, issuer, issuer's issuer, etc.
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
460 * @param failing A pointer to a PurpleCertificate*. If not NULL, if the
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
461 * chain fails to validate, this will be set to the
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
462 * certificate whose signature could not be validated.
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
463 * @return TRUE if the chain is valid. See description.
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
464 */
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
465 gboolean
32673
1bcedeb32bb4 Remove the old deprecated purple_certificate_check_signature_chain.
andrew.victor@mxit.com
parents: 30050
diff changeset
466 purple_certificate_check_signature_chain(GList *chain,
27999
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
467 PurpleCertificate **failing);
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
468
99baf778e0b9 Fix GnuTLS validation of the CACert Chain. Closes #4458.
Paul Aurich <paul@darkrain42.org>
parents: 25415
diff changeset
469 /**
18988
4189fc3befba - Add purple_certificate_import
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18984
diff changeset
470 * Imports a PurpleCertificate from a file
4189fc3befba - Add purple_certificate_import
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18984
diff changeset
471 *
4189fc3befba - Add purple_certificate_import
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18984
diff changeset
472 * @param scheme Scheme to import under
4189fc3befba - Add purple_certificate_import
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18984
diff changeset
473 * @param filename File path to import from
4189fc3befba - Add purple_certificate_import
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18984
diff changeset
474 * @return Pointer to a new PurpleCertificate, or NULL on failure
4189fc3befba - Add purple_certificate_import
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18984
diff changeset
475 */
4189fc3befba - Add purple_certificate_import
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18984
diff changeset
476 PurpleCertificate *
18989
43d1ee6a3ed5 - Fixed naming issues in previous revision
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18988
diff changeset
477 purple_certificate_import(PurpleCertificateScheme *scheme, const gchar *filename);
18988
4189fc3befba - Add purple_certificate_import
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18984
diff changeset
478
4189fc3befba - Add purple_certificate_import
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18984
diff changeset
479 /**
30050
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
480 * Imports a list of PurpleCertificates from a file
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
481 *
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
482 * @param scheme Scheme to import under
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
483 * @param filename File path to import from
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
484 * @return Pointer to a GSList of new PurpleCertificates, or NULL on failure
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
485 */
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
486 GSList *
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
487 purple_certificates_import(PurpleCertificateScheme *scheme, const gchar *filename);
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
488
c35fd54ec64b Implement reading multiple certificates from a single "bundle" of
Stu Tomlinson <stu@nosnilmot.com>
parents: 27999
diff changeset
489 /**
18977
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
490 * Exports a PurpleCertificate to a file
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
491 *
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
492 * @param filename File to export the certificate to
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
493 * @param crt Certificate to export
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
494 * @return TRUE if the export succeeded, otherwise FALSE
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
495 */
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
496 gboolean
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
497 purple_certificate_export(const gchar *filename, PurpleCertificate *crt);
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
498
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
499
31bdbb82de7e - Add purple_certificate_export and associated libpurple stuff
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18975
diff changeset
500 /**
18953
89b32569890c - Add purple_certificate_get_fingerprint_sha1
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18952
diff changeset
501 * Retrieves the certificate public key fingerprint using SHA1.
89b32569890c - Add purple_certificate_get_fingerprint_sha1
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18952
diff changeset
502 *
89b32569890c - Add purple_certificate_get_fingerprint_sha1
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18952
diff changeset
503 * @param crt Certificate instance
89b32569890c - Add purple_certificate_get_fingerprint_sha1
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18952
diff changeset
504 * @return Binary representation of the hash. You are responsible for free()ing
89b32569890c - Add purple_certificate_get_fingerprint_sha1
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18952
diff changeset
505 * this.
89b32569890c - Add purple_certificate_get_fingerprint_sha1
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18952
diff changeset
506 * @see purple_base16_encode_chunked()
89b32569890c - Add purple_certificate_get_fingerprint_sha1
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18952
diff changeset
507 */
89b32569890c - Add purple_certificate_get_fingerprint_sha1
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18952
diff changeset
508 GByteArray *
89b32569890c - Add purple_certificate_get_fingerprint_sha1
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18952
diff changeset
509 purple_certificate_get_fingerprint_sha1(PurpleCertificate *crt);
89b32569890c - Add purple_certificate_get_fingerprint_sha1
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18952
diff changeset
510
19080
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
511 /**
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
512 * Get a unique identifier for the certificate
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
513 *
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
514 * @param crt Certificate instance
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
515 * @return String representing the certificate uniquely. Must be g_free()'ed
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
516 */
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
517 gchar *
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
518 purple_certificate_get_unique_id(PurpleCertificate *crt);
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
519
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
520 /**
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
521 * Get a unique identifier for the certificate's issuer
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
522 *
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
523 * @param crt Certificate instance
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
524 * @return String representing the certificate's issuer uniquely. Must be
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
525 * g_free()'ed
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
526 */
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
527 gchar *
3bdede51c007 - Expose get_unique_id and get_issuer_unique_id through libpurple functions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19077
diff changeset
528 purple_certificate_get_issuer_unique_id(PurpleCertificate *crt);
18962
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
529
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
530 /**
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
531 * Gets the certificate subject's name
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
532 *
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
533 * For X.509, this is the "Common Name" field, as we're only using it
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
534 * for hostname verification at the moment
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
535 *
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
536 * @param crt Certificate instance
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
537 * @return Newly allocated string with the certificate subject.
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
538 */
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
539 gchar *
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
540 purple_certificate_get_subject_name(PurpleCertificate *crt);
fcd05c39803e - Add purple_certificate_get_subject_name and associated libpurple
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18957
diff changeset
541
19008
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
542 /**
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
543 * Check the subject name against that on the certificate
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
544 * @param crt Certificate instance
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22267
diff changeset
545 * @param name Name to check.
19008
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
546 * @return TRUE if it is a match, else FALSE
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
547 */
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
548 gboolean
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
549 purple_certificate_check_subject_name(PurpleCertificate *crt, const gchar *name);
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
550
19012
b1090cbfc286 - Add expiration/activation functions for Certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19011
diff changeset
551 /**
b1090cbfc286 - Add expiration/activation functions for Certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19011
diff changeset
552 * Get the expiration/activation times.
b1090cbfc286 - Add expiration/activation functions for Certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19011
diff changeset
553 *
b1090cbfc286 - Add expiration/activation functions for Certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19011
diff changeset
554 * @param crt Certificate instance
b1090cbfc286 - Add expiration/activation functions for Certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19011
diff changeset
555 * @param activation Reference to store the activation time at. May be NULL
b1090cbfc286 - Add expiration/activation functions for Certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19011
diff changeset
556 * if you don't actually want it.
b1090cbfc286 - Add expiration/activation functions for Certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19011
diff changeset
557 * @param expiration Reference to store the expiration time at. May be NULL
b1090cbfc286 - Add expiration/activation functions for Certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19011
diff changeset
558 * if you don't actually want it.
b1090cbfc286 - Add expiration/activation functions for Certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19011
diff changeset
559 * @return TRUE if the requested values were obtained, otherwise FALSE.
b1090cbfc286 - Add expiration/activation functions for Certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19011
diff changeset
560 */
b1090cbfc286 - Add expiration/activation functions for Certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19011
diff changeset
561 gboolean
b1090cbfc286 - Add expiration/activation functions for Certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19011
diff changeset
562 purple_certificate_get_times(PurpleCertificate *crt, time_t *activation, time_t *expiration);
19008
7fd9bd55f8d0 - Add certificate_check_subject_name and associated machinery
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19007
diff changeset
563
18994
bf23d58ec9c3 - Rearrange certificate.h for better organization
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18989
diff changeset
564 /*@}*/
bf23d58ec9c3 - Rearrange certificate.h for better organization
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18989
diff changeset
565
bf23d58ec9c3 - Rearrange certificate.h for better organization
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18989
diff changeset
566 /*****************************************************************************/
bf23d58ec9c3 - Rearrange certificate.h for better organization
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18989
diff changeset
567 /** @name Certificate Pool Functions */
bf23d58ec9c3 - Rearrange certificate.h for better organization
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18989
diff changeset
568 /*****************************************************************************/
bf23d58ec9c3 - Rearrange certificate.h for better organization
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18989
diff changeset
569 /*@{*/
18984
2b4150624cf2 - Add purple_certificate_pool_mkpath helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18983
diff changeset
570 /**
2b4150624cf2 - Add purple_certificate_pool_mkpath helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18983
diff changeset
571 * Helper function for generating file paths in ~/.purple/certificates for
2b4150624cf2 - Add purple_certificate_pool_mkpath helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18983
diff changeset
572 * CertificatePools that use them.
2b4150624cf2 - Add purple_certificate_pool_mkpath helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18983
diff changeset
573 *
19010
0d4b84820390 - Fix overzealous escaping cause by ancestor revision
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19009
diff changeset
574 * All components will be escaped for filesystem friendliness.
0d4b84820390 - Fix overzealous escaping cause by ancestor revision
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19009
diff changeset
575 *
18984
2b4150624cf2 - Add purple_certificate_pool_mkpath helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18983
diff changeset
576 * @param pool CertificatePool to build a path for
2b4150624cf2 - Add purple_certificate_pool_mkpath helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18983
diff changeset
577 * @param id Key to look up a Certificate by. May be NULL.
2b4150624cf2 - Add purple_certificate_pool_mkpath helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18983
diff changeset
578 * @return A newly allocated path of the form
19010
0d4b84820390 - Fix overzealous escaping cause by ancestor revision
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19009
diff changeset
579 * ~/.purple/certificates/scheme_name/pool_name/unique_id
18984
2b4150624cf2 - Add purple_certificate_pool_mkpath helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18983
diff changeset
580 */
2b4150624cf2 - Add purple_certificate_pool_mkpath helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18983
diff changeset
581 gchar *
2b4150624cf2 - Add purple_certificate_pool_mkpath helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18983
diff changeset
582 purple_certificate_pool_mkpath(PurpleCertificatePool *pool, const gchar *id);
2b4150624cf2 - Add purple_certificate_pool_mkpath helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18983
diff changeset
583
18995
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
584 /**
19034
8b627694bf4a - Add purple_certificate_pool_usable to check whether a pool's
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19028
diff changeset
585 * Determines whether a pool can be used.
8b627694bf4a - Add purple_certificate_pool_usable to check whether a pool's
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19028
diff changeset
586 *
8b627694bf4a - Add purple_certificate_pool_usable to check whether a pool's
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19028
diff changeset
587 * Checks whether the associated CertificateScheme is loaded.
8b627694bf4a - Add purple_certificate_pool_usable to check whether a pool's
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19028
diff changeset
588 *
8b627694bf4a - Add purple_certificate_pool_usable to check whether a pool's
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19028
diff changeset
589 * @param pool Pool to check
8b627694bf4a - Add purple_certificate_pool_usable to check whether a pool's
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19028
diff changeset
590 *
8b627694bf4a - Add purple_certificate_pool_usable to check whether a pool's
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19028
diff changeset
591 * @return TRUE if the pool can be used, otherwise FALSE
8b627694bf4a - Add purple_certificate_pool_usable to check whether a pool's
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19028
diff changeset
592 */
8b627694bf4a - Add purple_certificate_pool_usable to check whether a pool's
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19028
diff changeset
593 gboolean
8b627694bf4a - Add purple_certificate_pool_usable to check whether a pool's
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19028
diff changeset
594 purple_certificate_pool_usable(PurpleCertificatePool *pool);
8b627694bf4a - Add purple_certificate_pool_usable to check whether a pool's
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19028
diff changeset
595
8b627694bf4a - Add purple_certificate_pool_usable to check whether a pool's
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19028
diff changeset
596 /**
19060
c79b54f03f9d - Add purple_certificate_pool_get_scheme helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19049
diff changeset
597 * Looks up the scheme the pool operates under
c79b54f03f9d - Add purple_certificate_pool_get_scheme helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19049
diff changeset
598 *
c79b54f03f9d - Add purple_certificate_pool_get_scheme helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19049
diff changeset
599 * @param pool Pool to get the scheme of
c79b54f03f9d - Add purple_certificate_pool_get_scheme helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19049
diff changeset
600 *
c79b54f03f9d - Add purple_certificate_pool_get_scheme helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19049
diff changeset
601 * @return Pointer to the pool's scheme, or NULL if it isn't loaded.
c79b54f03f9d - Add purple_certificate_pool_get_scheme helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19049
diff changeset
602 * @see purple_certificate_pool_usable()
c79b54f03f9d - Add purple_certificate_pool_get_scheme helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19049
diff changeset
603 */
c79b54f03f9d - Add purple_certificate_pool_get_scheme helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19049
diff changeset
604 PurpleCertificateScheme *
c79b54f03f9d - Add purple_certificate_pool_get_scheme helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19049
diff changeset
605 purple_certificate_pool_get_scheme(PurpleCertificatePool *pool);
c79b54f03f9d - Add purple_certificate_pool_get_scheme helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19049
diff changeset
606
c79b54f03f9d - Add purple_certificate_pool_get_scheme helper function
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19049
diff changeset
607 /**
18995
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
608 * Check for presence of an ID in a pool.
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
609 * @param pool Pool to look in
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
610 * @param id ID to look for
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
611 * @return TRUE if the ID is in the pool, else FALSE
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
612 */
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
613 gboolean
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
614 purple_certificate_pool_contains(PurpleCertificatePool *pool, const gchar *id);
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
615
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
616 /**
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
617 * Retrieve a certificate from a pool.
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
618 * @param pool Pool to fish in
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
619 * @param id ID to look up
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
620 * @return Retrieved certificate, or NULL if it wasn't there
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
621 */
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
622 PurpleCertificate *
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
623 purple_certificate_pool_retrieve(PurpleCertificatePool *pool, const gchar *id);
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
624
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
625 /**
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
626 * Add a certificate to a pool
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
627 *
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
628 * Any pre-existing certificate of the same ID will be overwritten.
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
629 *
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
630 * @param pool Pool to add to
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
631 * @param id ID to store the certificate with
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
632 * @param crt Certificate to store
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
633 * @return TRUE if the operation succeeded, otherwise FALSE
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
634 */
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
635 gboolean
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
636 purple_certificate_pool_store(PurpleCertificatePool *pool, const gchar *id, PurpleCertificate *crt);
47b06daea9d1 - Add pool retrieve, contains, and store functions to certificate API
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18994
diff changeset
637
19026
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
638 /**
19049
8cbc110456ac - Add purple_certificate_pool_delete
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19034
diff changeset
639 * Remove a certificate from a pool
8cbc110456ac - Add purple_certificate_pool_delete
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19034
diff changeset
640 *
8cbc110456ac - Add purple_certificate_pool_delete
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19034
diff changeset
641 * @param pool Pool to remove from
8cbc110456ac - Add purple_certificate_pool_delete
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19034
diff changeset
642 * @param id ID to remove
8cbc110456ac - Add purple_certificate_pool_delete
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19034
diff changeset
643 * @return TRUE if the operation succeeded, otherwise FALSE
8cbc110456ac - Add purple_certificate_pool_delete
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19034
diff changeset
644 */
8cbc110456ac - Add purple_certificate_pool_delete
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19034
diff changeset
645 gboolean
8cbc110456ac - Add purple_certificate_pool_delete
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19034
diff changeset
646 purple_certificate_pool_delete(PurpleCertificatePool *pool, const gchar *id);
8cbc110456ac - Add purple_certificate_pool_delete
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19034
diff changeset
647
8cbc110456ac - Add purple_certificate_pool_delete
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19034
diff changeset
648 /**
19026
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
649 * Get the list of IDs currently in the pool.
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
650 *
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
651 * @param pool Pool to enumerate
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
652 * @return GList pointing to newly-allocated id strings. Free using
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
653 * purple_certificate_pool_destroy_idlist()
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
654 */
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
655 GList *
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
656 purple_certificate_pool_get_idlist(PurpleCertificatePool *pool);
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
657
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
658 /**
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
659 * Destroys the result given by purple_certificate_pool_get_idlist()
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
660 *
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
661 * @param idlist ID List to destroy
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
662 */
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
663 void
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
664 purple_certificate_pool_destroy_idlist(GList *idlist);
b3acaf46d9ad - Add pool_get_idlist / pool_destroy_idlist
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19023
diff changeset
665
18945
fa42d8fa7873 - Documentation segmentation
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18942
diff changeset
666 /*@}*/
fa42d8fa7873 - Documentation segmentation
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18942
diff changeset
667
17638
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
668 /*****************************************************************************/
18994
bf23d58ec9c3 - Rearrange certificate.h for better organization
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18989
diff changeset
669 /** @name Certificate Subsystem API */
17638
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
670 /*****************************************************************************/
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
671 /*@{*/
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
672
18950
f78a9efa9eaf - Add purple_certificate_register_builtins
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18947
diff changeset
673 /**
18957
9205841eed06 - Certificate system now has init and uninit like other systems
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18953
diff changeset
674 * Initialize the certificate system
18950
f78a9efa9eaf - Add purple_certificate_register_builtins
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18947
diff changeset
675 */
f78a9efa9eaf - Add purple_certificate_register_builtins
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18947
diff changeset
676 void
18957
9205841eed06 - Certificate system now has init and uninit like other systems
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18953
diff changeset
677 purple_certificate_init(void);
9205841eed06 - Certificate system now has init and uninit like other systems
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18953
diff changeset
678
9205841eed06 - Certificate system now has init and uninit like other systems
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18953
diff changeset
679 /**
9205841eed06 - Certificate system now has init and uninit like other systems
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18953
diff changeset
680 * Un-initialize the certificate system
9205841eed06 - Certificate system now has init and uninit like other systems
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18953
diff changeset
681 */
9205841eed06 - Certificate system now has init and uninit like other systems
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18953
diff changeset
682 void
9205841eed06 - Certificate system now has init and uninit like other systems
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18953
diff changeset
683 purple_certificate_uninit(void);
18950
f78a9efa9eaf - Add purple_certificate_register_builtins
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18947
diff changeset
684
19022
1f07f96dc1ce - Add purple_certificate_get_handle
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19021
diff changeset
685 /**
1f07f96dc1ce - Add purple_certificate_get_handle
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19021
diff changeset
686 * Get the Certificate subsystem handle for signalling purposes
1f07f96dc1ce - Add purple_certificate_get_handle
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19021
diff changeset
687 */
1f07f96dc1ce - Add purple_certificate_get_handle
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19021
diff changeset
688 gpointer
1f07f96dc1ce - Add purple_certificate_get_handle
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19021
diff changeset
689 purple_certificate_get_handle(void);
1f07f96dc1ce - Add purple_certificate_get_handle
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19021
diff changeset
690
18192
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
691 /** Look up a registered CertificateScheme by name
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
692 * @param name The scheme name. Case insensitive.
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
693 * @return Pointer to the located Scheme, or NULL if it isn't found.
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
694 */
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
695 PurpleCertificateScheme *
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
696 purple_certificate_find_scheme(const gchar *name);
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
697
19023
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
698 /**
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
699 * Get all registered CertificateSchemes
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
700 *
19028
86403f33720b - Add dire warnings to the purple_certificate_get_Xs docs
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19026
diff changeset
701 * @return GList pointing to all registered CertificateSchemes . This value
86403f33720b - Add dire warnings to the purple_certificate_get_Xs docs
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19026
diff changeset
702 * is owned by libpurple
19023
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
703 */
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
704 GList *
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
705 purple_certificate_get_schemes(void);
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
706
18192
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
707 /** Register a CertificateScheme with libpurple
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
708 *
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
709 * No two schemes can be registered with the same name; this function enforces
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
710 * that.
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
711 *
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
712 * @param scheme Pointer to the scheme to register.
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
713 * @return TRUE if the scheme was successfully added, otherwise FALSE
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
714 */
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
715 gboolean
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
716 purple_certificate_register_scheme(PurpleCertificateScheme *scheme);
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
717
18926
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
718 /** Unregister a CertificateScheme from libpurple
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
719 *
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
720 * @param scheme Scheme to unregister.
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
721 * If the scheme is not registered, this is a no-op.
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
722 *
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
723 * @return TRUE if the unregister completed successfully
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
724 */
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
725 gboolean
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
726 purple_certificate_unregister_scheme(PurpleCertificateScheme *scheme);
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
727
18941
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
728 /** Look up a registered PurpleCertificateVerifier by scheme and name
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
729 * @param scheme_name Scheme name. Case insensitive.
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
730 * @param ver_name The verifier name. Case insensitive.
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
731 * @return Pointer to the located Verifier, or NULL if it isn't found.
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
732 */
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
733 PurpleCertificateVerifier *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
734 purple_certificate_find_verifier(const gchar *scheme_name, const gchar *ver_name);
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
735
19023
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
736 /**
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
737 * Get the list of registered CertificateVerifiers
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
738 *
19028
86403f33720b - Add dire warnings to the purple_certificate_get_Xs docs
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19026
diff changeset
739 * @return GList of all registered PurpleCertificateVerifier. This value
86403f33720b - Add dire warnings to the purple_certificate_get_Xs docs
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19026
diff changeset
740 * is owned by libpurple
19023
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
741 */
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
742 GList *
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
743 purple_certificate_get_verifiers(void);
18941
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
744
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
745 /**
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
746 * Register a CertificateVerifier with libpurple
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
747 *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
748 * @param vr Verifier to register.
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
749 * @return TRUE if register succeeded, otherwise FALSE
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
750 */
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
751 gboolean
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
752 purple_certificate_register_verifier(PurpleCertificateVerifier *vr);
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
753
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
754 /**
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
755 * Unregister a CertificateVerifier with libpurple
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
756 *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
757 * @param vr Verifier to unregister.
18971
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
758 * @return TRUE if unregister succeeded, otherwise FALSE
18941
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
759 */
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
760 gboolean
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
761 purple_certificate_unregister_verifier(PurpleCertificateVerifier *vr);
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
762
18971
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
763 /** Look up a registered PurpleCertificatePool by scheme and name
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
764 * @param scheme_name Scheme name. Case insensitive.
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
765 * @param pool_name Pool name. Case insensitive.
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
766 * @return Pointer to the located Pool, or NULL if it isn't found.
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
767 */
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
768 PurpleCertificatePool *
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
769 purple_certificate_find_pool(const gchar *scheme_name, const gchar *pool_name);
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
770
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
771 /**
19023
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
772 * Get the list of registered Pools
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
773 *
19028
86403f33720b - Add dire warnings to the purple_certificate_get_Xs docs
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19026
diff changeset
774 * @return GList of all registered PurpleCertificatePool s. This value
86403f33720b - Add dire warnings to the purple_certificate_get_Xs docs
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19026
diff changeset
775 * is owned by libpurple
19023
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
776 */
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
777 GList *
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
778 purple_certificate_get_pools(void);
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
779
eb86ff3ba21a - Add get_pools, get_verifiers, and get_schemes
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19022
diff changeset
780 /**
18971
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
781 * Register a CertificatePool with libpurple and call its init function
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
782 *
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
783 * @param pool Pool to register.
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
784 * @return TRUE if the register succeeded, otherwise FALSE
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
785 */
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
786 gboolean
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
787 purple_certificate_register_pool(PurpleCertificatePool *pool);
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
788
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
789 /**
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
790 * Unregister a CertificatePool with libpurple and call its uninit function
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
791 *
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
792 * @param pool Pool to unregister.
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
793 * @return TRUE if the unregister succeeded, otherwise FALSE
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
794 */
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
795 gboolean
898e2bd70f23 - Add find, register, and unregister for CertificatePools
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18970
diff changeset
796 purple_certificate_unregister_pool(PurpleCertificatePool *pool);
17638
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
797
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
798 /*@}*/
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
799
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
800
19329
e93db0c87b26 - Add purple_certificate_display_x509
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19092
diff changeset
801 /**
e93db0c87b26 - Add purple_certificate_display_x509
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19092
diff changeset
802 * Displays a window showing X.509 certificate information
e93db0c87b26 - Add purple_certificate_display_x509
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19092
diff changeset
803 *
e93db0c87b26 - Add purple_certificate_display_x509
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19092
diff changeset
804 * @param crt Certificate under an "x509" Scheme
20927
3d704e6bd08a s/@TODO/@todo/ for Doxygen.
Richard Laager <rlaager@wiktel.com>
parents: 20875
diff changeset
805 * @todo Will break on CA certs, as they have no Common Name
19329
e93db0c87b26 - Add purple_certificate_display_x509
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19092
diff changeset
806 */
e93db0c87b26 - Add purple_certificate_display_x509
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19092
diff changeset
807 void
e93db0c87b26 - Add purple_certificate_display_x509
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19092
diff changeset
808 purple_certificate_display_x509(PurpleCertificate *crt);
e93db0c87b26 - Add purple_certificate_display_x509
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19092
diff changeset
809
21647
a57adf1de9cb Patch from Florian Quze (the InstantBird dude) to add a search path for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20927
diff changeset
810 /**
a57adf1de9cb Patch from Florian Quze (the InstantBird dude) to add a search path for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20927
diff changeset
811 * Add a search path for certificates.
a57adf1de9cb Patch from Florian Quze (the InstantBird dude) to add a search path for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20927
diff changeset
812 *
a57adf1de9cb Patch from Florian Quze (the InstantBird dude) to add a search path for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20927
diff changeset
813 * @param path Path to search for certificates.
a57adf1de9cb Patch from Florian Quze (the InstantBird dude) to add a search path for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20927
diff changeset
814 */
a57adf1de9cb Patch from Florian Quze (the InstantBird dude) to add a search path for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20927
diff changeset
815 void purple_certificate_add_ca_search_path(const char *path);
19329
e93db0c87b26 - Add purple_certificate_display_x509
William Ehlhardt <williamehlhardt@gmail.com>
parents: 19092
diff changeset
816
17638
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
817 #ifdef __cplusplus
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
818 }
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
819 #endif /* __cplusplus */
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
820
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
821 #endif /* _PURPLE_CERTIFICATE_H */