annotate libpurple/certificate.h @ 18941:425f494bd1ec

- CertificateVerifier register/unregister/find - certificate_verify added, probably will change - struct Verifier: start_verification added
author William Ehlhardt <williamehlhardt@gmail.com>
date Fri, 22 Jun 2007 23:30:26 +0000
parents 5fa287322a82
children 02102eccc4be
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17910
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
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
4 */
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 * purple
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
9 *
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
10 * 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
11 * 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
12 * source distribution.
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
13 *
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
14 * 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
15 * 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
16 * 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
17 * (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
18 *
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
19 * 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
20 * 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
21 * 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
22 * 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
23 *
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
24 * 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
25 * along with this program; if not, write to the Free Software
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
26 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
27 */
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 #ifndef _PURPLE_CERTIFICATE_H
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
30 #define _PURPLE_CERTIFICATE_H
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
31
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
32 #include <glib.h>
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
33
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
34 #ifdef __cplusplus
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
35 extern "C" {
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
36 #endif /* __cplusplus */
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
37
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
38
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
39 typedef enum
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
40 {
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
41 PURPLE_CERTIFICATE_INVALID = 0,
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
42 PURPLE_CERTIFICATE_VALID = 1
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
43 } PurpleCertificateVerificationStatus;
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
44
18189
030a2209ae96 - Style issues
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18188
diff changeset
45 typedef struct _PurpleCertificate PurpleCertificate;
030a2209ae96 - Style issues
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18188
diff changeset
46 typedef struct _PurpleCertificateScheme PurpleCertificateScheme;
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
47 typedef struct _PurpleCertificateVerifier PurpleCertificateVerifier;
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
48 typedef struct _PurpleCertificateVerificationRequest PurpleCertificateVerificationRequest;
17910
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
49
18940
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
50 /**
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
51 * Callback function for the results of a verification check
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
52 * @param vrq Request structure operated on
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
53 * @param st Status code
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
54 * @param userdata User-defined data
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
55 */
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
56 typedef void (*PurpleCertificateVerifiedCallback)
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
57 (PurpleCertificateVerificationRequest *vrq,
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
58 PurpleCertificateVerificationStatus,
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
59 gpointer userdata);
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
60
17913
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17912
diff changeset
61 /** A certificate instance
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17912
diff changeset
62 *
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17912
diff changeset
63 * 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: 17912
diff changeset
64 * CertificateScheme
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17912
diff changeset
65 */
18189
030a2209ae96 - Style issues
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18188
diff changeset
66 struct _PurpleCertificate
17913
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17912
diff changeset
67 {
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17912
diff changeset
68 /** Scheme this certificate is under */
18189
030a2209ae96 - Style issues
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18188
diff changeset
69 PurpleCertificateScheme * scheme;
17913
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17912
diff changeset
70 /** Opaque pointer to internal data */
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17912
diff changeset
71 gpointer data;
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17912
diff changeset
72 };
55a0b0a42000 - Exposed the _Certificate struct definition in certificate.h
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17912
diff changeset
73
17910
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
74 /** A certificate type
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
75 *
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
76 * A CertificateScheme must implement all of the fields in the structure,
18936
895831f93380 - Documentation correction
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18934
diff changeset
77 * and register it using purple_certificate_register_scheme()
17910
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
78 *
17912
945b60f02767 - Fixed a comment
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17910
diff changeset
79 * There may be only ONE CertificateScheme provided for each certificate
945b60f02767 - Fixed a comment
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17910
diff changeset
80 * type, as specified by the "name" field.
17910
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
81 */
18189
030a2209ae96 - Style issues
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18188
diff changeset
82 struct _PurpleCertificateScheme
17910
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
83 {
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
84 /** Name of the certificate type
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
85 * ex: "x509", "pgp", etc.
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
86 * 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
87 * 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
88 */
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
89 gchar * name;
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
90
18188
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
91 /** User-friendly name for this type
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
92 * ex: N_("X.509 Certificates")
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
93 * When this is displayed anywhere, it should be i18ned
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
94 * ex: _(scheme->name)
18188
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
95 */
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
96 gchar * fullname;
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
97
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
98 /** Imports a certificate from a file
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
99 *
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
100 * @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: 17913
diff changeset
101 * @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: 17913
diff changeset
102 * or NULL on failure.
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
103 */
18190
b2d110e9857f - Eliminate compiler warning
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18189
diff changeset
104 PurpleCertificate * (* import_certificate)(const gchar * filename);
18188
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
105
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
106 /** Destroys and frees a Certificate structure
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
107 *
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
108 * 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: 17913
diff changeset
109 * free(crt)
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
110 *
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
111 * @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: 17913
diff changeset
112 * 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: 17913
diff changeset
113 * CertificateScheme. Can be NULL
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
114 */
18189
030a2209ae96 - Style issues
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18188
diff changeset
115 void (* destroy_certificate)(PurpleCertificate * crt);
18934
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
116
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
117 /**
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
118 * Retrieves the certificate public key fingerprint using SHA1
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
119 *
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
120 * @param crt Certificate instance
18937
eac58c6caae7 - More documentation
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18936
diff changeset
121 * @return Binary representation of SHA1 hash - must be freed using
eac58c6caae7 - More documentation
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18936
diff changeset
122 * g_byte_array_free()
18934
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
123 */
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
124 GByteArray * (* get_fingerprint_sha1)(PurpleCertificate *crt);
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
125
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
126 /**
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
127 * Reads "who the certificate is assigned to"
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
128 *
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
129 * For SSL X.509 certificates, this is something like
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
130 * "gmail.com" or "jabber.org"
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
131 *
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
132 * @param crt Certificate instance
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
133 * @return Newly allocated string specifying "whose certificate this
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
134 * is"
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
135 */
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
136 gchar * (* get_certificate_subject)(PurpleCertificate *crt);
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
137
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
138 /**
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
139 * Retrieves a unique certificate identifier
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
140 *
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
141 * @param crt Certificate instance
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
142 * @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
143 * identify the certificate.
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
144 */
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
145 gchar * (* get_unique_id)(PurpleCertificate *crt);
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
146
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
147 /**
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
148 * 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
149 *
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
150 * @param crt Certificate instance
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
151 * @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
152 * identify the issuer's certificate.
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
153 */
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
154 gchar * (* get_issuer_unique_id)(PurpleCertificate *crt);
04be1b885ef3 - Add more to the Certificate struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18933
diff changeset
155
18188
e6271671eb24 - Expose some more functions in the x509 CertificateScheme. Doesn't
William Ehlhardt <williamehlhardt@gmail.com>
parents: 17913
diff changeset
156
17910
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
157 /* TODO: Fill out this structure */
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
158 };
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
159
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
160 /** 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
161 * authenticity.
18941
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
162 *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
163 * 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
164 * purple_certificate_register_verifier()
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
165 *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
166 * 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
167 * 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
168 */
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
169 struct _PurpleCertificateVerifier
18940
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
170 {
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
171 /** Name of the Verifier - case insensitive */
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
172 gchar *name;
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
173
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
174 /** Name of the scheme this Verifier operates on
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
175 *
18940
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
176 * 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
177 * using this Verifier
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
178 */
18940
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
179 gchar *scheme_name;
18941
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
180
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
181 /**
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
182 * Start the verification process
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
183 *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
184 * To be called from purple_certificate_verify once it has
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
185 * constructed the request. This will use the information in the
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
186 * given VerificationRequest to check the certificate and callback
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
187 * the requester with the verification results.
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
188 *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
189 * @param vrq Request to process
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
190 */
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
191 void (* start_verification)(PurpleCertificateVerificationRequest *vrq);
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
192 };
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
193
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
194 /** Structure for a single certificate request
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
195 *
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
196 * 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
197 * several steps
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
198 */
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
199 struct _PurpleCertificateVerificationRequest
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
200 {
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
201 /** Reference to the verification logic used */
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
202 PurpleCertificateVerifier *verifier;
18941
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
203 /** Reference to the scheme used.
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
204 *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
205 * 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
206 */
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
207
18940
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
208 /**
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
209 * 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
210 *
e634122cec47 - purple_ssl_get_peer_certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18928
diff changeset
211 * For X.509 certificates, this is the Common Name
e634122cec47 - purple_ssl_get_peer_certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18928
diff changeset
212 */
e634122cec47 - purple_ssl_get_peer_certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18928
diff changeset
213 gchar *subject_name;
e634122cec47 - purple_ssl_get_peer_certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18928
diff changeset
214
e634122cec47 - purple_ssl_get_peer_certificates
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18928
diff changeset
215 /** 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
216 *
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
217 * 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
218 * 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
219 */
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
220 GList *cert_chain;
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
221
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
222 /** Internal data used by the Verifier code */
18940
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
223 gpointer data;
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
224
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
225 /** Function to call with the verification result */
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
226 PurpleCertificateVerifiedCallback cb;
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
227 /** Data to pass to the post-verification callback */
5fa287322a82 - Fill out CertVerifier struct
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18937
diff changeset
228 gpointer cb_data;
18928
299022c9b32d - More API additions
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18926
diff changeset
229 };
17910
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
230
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
231 /*****************************************************************************/
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
232 /** @name PurpleCertificate Subsystem API */
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
233 /*****************************************************************************/
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
234 /*@{*/
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
235
18192
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
236 /** 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
237 * @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
238 * @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
239 */
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
240 PurpleCertificateScheme *
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
241 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
242
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
243 /** Register a CertificateScheme with libpurple
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
244 *
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
245 * 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
246 * that.
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
247 *
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
248 * @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
249 * @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
250 */
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
251 gboolean
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
252 purple_certificate_register_scheme(PurpleCertificateScheme *scheme);
dc7e7b8bdc8c - Add chunks of the certificate scheme registration interface
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18190
diff changeset
253
18926
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
254 /** Unregister a CertificateScheme from libpurple
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
255 *
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
256 * @param scheme Scheme to unregister.
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
257 * If the scheme is not registered, this is a no-op.
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
258 *
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
259 * @return TRUE if the unregister completed successfully
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
260 */
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
261 gboolean
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
262 purple_certificate_unregister_scheme(PurpleCertificateScheme *scheme);
8c4d52bc0319 - Add unregister_scheme
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18192
diff changeset
263
18941
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
264 /** Look up a registered PurpleCertificateVerifier by scheme and name
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
265 * @param scheme_name Scheme name. Case insensitive.
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
266 * @param ver_name The verifier name. Case insensitive.
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
267 * @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
268 */
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
269 PurpleCertificateVerifier *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
270 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
271
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
272
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
273 /**
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
274 * Register a CertificateVerifier with libpurple
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
275 *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
276 * @param vr Verifier to register.
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
277 * @return TRUE if register succeeded, otherwise FALSE
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
278 */
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
279 gboolean
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
280 purple_certificate_register_verifier(PurpleCertificateVerifier *vr);
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
281
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
282 /**
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
283 * Unregister a CertificateVerifier with libpurple
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
284 *
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
285 * @param vr Verifier to unregister.
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
286 * @return TRUE if register succeeded, otherwise FALSE
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
287 */
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
288 gboolean
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
289 purple_certificate_unregister_verifier(PurpleCertificateVerifier *vr);
425f494bd1ec - CertificateVerifier register/unregister/find
William Ehlhardt <williamehlhardt@gmail.com>
parents: 18940
diff changeset
290
17910
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
291 /* TODO: ADD STUFF HERE */
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
292
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
293 /*@}*/
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
294
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
295
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
296 #ifdef __cplusplus
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
297 }
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
298 #endif /* __cplusplus */
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
299
668a294f9a72 - Added certificate.[ch] and got them integrated into the build
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff changeset
300 #endif /* _PURPLE_CERTIFICATE_H */