8
static void cb_cert_verify(PurpleCertificateVerificationStatus st, struct cb_data *d) {
16
XPUSHs(sv_2mortal(newSViv(st)));
21
call_sv(d->cb, G_VOID | G_EVAL);
25
purple_debug_warning("perl", "Failed to run 'certificate verify' callback: %s\n", SvPV(ERRSV, l_a));
32
SvREFCNT_dec(d->user_data);
37
MODULE = Purple::Certificate PACKAGE = Purple::Certificate PREFIX = purple_certificate_
42
HV *stash = gv_stashpv("Purple::Certificate", 1);
44
static const constiv *civ, const_iv[] = {
45
#define const_iv(name) {#name, (IV)PURPLE_CERTIFICATE_##name}
50
for (civ = const_iv + sizeof(const_iv) / sizeof(const_iv[0]); civ-- > const_iv; )
51
newCONSTSUB(stash, (char *)civ->name, newSViv(civ->iv));
55
purple_certificate_add_ca_search_path(path)
59
purple_certificate_check_subject_name(crt, name)
60
Purple::Certificate crt
64
purple_certificate_copy(crt)
65
Purple::Certificate crt
68
purple_certificate_destroy(crt)
69
Purple::Certificate crt
72
purple_certificate_display_x509(crt)
73
Purple::Certificate crt
75
## changed order of arguments, so that $cert->export($file) could be used
77
purple_certificate_export(crt, filename)
79
Purple::Certificate crt
83
Purple::Certificate::Pool
84
purple_certificate_find_pool(scheme_name, pool_name)
85
const gchar* scheme_name
86
const gchar* pool_name
88
Purple::Certificate::Scheme
89
purple_certificate_find_scheme(name)
92
Purple::Certificate::Verifier
93
purple_certificate_find_verifier(scheme_name, ver_name)
94
const gchar* scheme_name
98
purple_certificate_get_handle()
101
purple_certificate_get_issuer_unique_id(crt)
102
Purple::Certificate crt
105
purple_certificate_get_subject_name(crt)
106
Purple::Certificate crt
109
purple_certificate_get_unique_id(crt)
110
Purple::Certificate crt
113
purple_certificate_import(scheme, filename)
114
Purple::Certificate::Scheme scheme
115
const gchar* filename
118
purple_certificate_register_pool(pool)
119
Purple::Certificate::Pool pool
122
purple_certificate_register_scheme(scheme)
123
Purple::Certificate::Scheme scheme
126
purple_certificate_register_verifier(vr)
127
Purple::Certificate::Verifier vr
130
purple_certificate_signed_by(crt, issuer)
131
Purple::Certificate crt
132
Purple::Certificate issuer
135
purple_certificate_unregister_pool(pool)
136
Purple::Certificate::Pool pool
139
purple_certificate_unregister_scheme(scheme)
140
Purple::Certificate::Scheme scheme
143
purple_certificate_unregister_verifier(vr)
144
Purple::Certificate::Verifier vr
147
purple_certificate_verify_complete(vrq, st)
148
Purple::Certificate::VerificationRequest vrq
149
Purple::Certificate::VerificationStatus st
152
purple_certificate_get_times(crt, OUTLIST time_t activation, OUTLIST time_t expiration)
153
Purple::Certificate crt
157
purple_certificate_destroy_list(...)
162
for(i = 0; i < items; i++) { /* PurpleCertificate */
163
l = g_list_prepend(l, purple_perl_ref_object(ST(i)));
165
purple_certificate_destroy_list(l);
168
purple_certificate_get_pools()
172
for(l = purple_certificate_get_pools(); l; l = l->next) {
173
XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Certificate::Pool")));
177
purple_certificate_get_schemes()
181
for(l = purple_certificate_get_schemes(); l; l = l->next) {
182
XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Certificate::Scheme")));
186
purple_certificate_get_verifiers()
190
for(l = purple_certificate_get_verifiers(); l; l = l->next) {
191
XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Certificate::Verifier")));
195
purple_certificate_check_signature_chain(...)
201
for(i = 0; i < items; i++) { /* PurpleCertificate */
202
l = g_list_prepend(l, purple_perl_ref_object(ST(i)));
204
l = g_list_reverse(l);
205
ret = purple_certificate_check_signature_chain(l);
207
if(ret) XSRETURN_YES;
211
purple_certificate_get_fingerprint_sha1(crt)
212
Purple::Certificate crt
214
GByteArray *gba = NULL;
216
gba = purple_certificate_get_fingerprint_sha1(crt);
217
RETVAL = newSVpv(gba->data, gba->len);
218
g_byte_array_free(gba, TRUE);
223
purple_certificate_verify(verifier, subject_name, cert_chain, cb, cb_data)
224
Purple::Certificate::Verifier verifier
225
const gchar* subject_name
232
struct cb_data *d = NULL;
234
len = av_len(cert_chain) + 1;
235
for(i = 0; i < len; i++) {
236
SV **sv = av_fetch(cert_chain, i, 0);
237
if(!sv || !purple_perl_is_ref_object(*sv)) {
239
warn("Purple::Certificate::verify: cert_chain: non-purple object in array...");
242
l = g_list_prepend(l, purple_perl_ref_object(*sv));
244
l = g_list_reverse(l);
246
d = g_new0(struct cb_data, 1);
247
d->cb = newSVsv(ST(3));
248
d->user_data = newSVsv(cb_data);
250
purple_certificate_verify(verifier, subject_name, l, (PurpleCertificateVerifiedCallback) cb_cert_verify, d);
254
MODULE = Purple::Certificate PACKAGE = Purple::Certificate::Pool PREFIX = purple_certificate_pool_
258
purple_certificate_pool_get_idlist(pool)
259
Purple::Certificate::Pool pool
263
b = purple_certificate_pool_get_idlist(pool);
264
for(l = b; l; l = l->next) {
265
XPUSHs(sv_2mortal(newSVpv(l->data, 0)));
267
purple_certificate_pool_destroy_idlist(b);
270
purple_certificate_pool_contains(pool, id)
271
Purple::Certificate::Pool pool
275
purple_certificate_pool_delete(pool, id)
276
Purple::Certificate::Pool pool
279
Purple::Certificate::Scheme
280
purple_certificate_pool_get_scheme(pool)
281
Purple::Certificate::Pool pool
284
purple_certificate_pool_mkpath(pool, id)
285
Purple::Certificate::Pool pool
289
purple_certificate_pool_retrieve(pool, id)
290
Purple::Certificate::Pool pool
294
purple_certificate_pool_store(pool, id, crt)
295
Purple::Certificate::Pool pool
297
Purple::Certificate crt
300
purple_certificate_pool_usable(pool)
301
Purple::Certificate::Pool pool