Mercurial > pidgin
comparison libpurple/certificate.c @ 18942:02102eccc4be
- purple_certificate_verify now takes a Verifier argument, creates its
own VerificationRequest, amd may callback immediately
author | William Ehlhardt <williamehlhardt@gmail.com> |
---|---|
date | Sat, 23 Jun 2007 00:04:49 +0000 |
parents | 425f494bd1ec |
children | c519ff185569 |
comparison
equal
deleted
inserted
replaced
18941:425f494bd1ec | 18942:02102eccc4be |
---|---|
35 static GList *cert_schemes = NULL; | 35 static GList *cert_schemes = NULL; |
36 /** List of registered Verifiers */ | 36 /** List of registered Verifiers */ |
37 static GList *cert_verifiers = NULL; | 37 static GList *cert_verifiers = NULL; |
38 | 38 |
39 void | 39 void |
40 purple_certificate_verify (PurpleCertificateVerificationRequest *vrq, | 40 purple_certificate_verify (PurpleCertificateVerifier *verifier, |
41 gchar *scheme_name, gchar *ver_name, | 41 const gchar *subject_name, GList *cert_chain, |
42 gchar *subject_name, GList *cert_chain, | |
43 PurpleCertificateVerifiedCallback cb, | 42 PurpleCertificateVerifiedCallback cb, |
44 gpointer cb_data) | 43 gpointer cb_data) |
45 { | 44 { |
45 PurpleCertificateVerificationRequest *vrq; | |
46 PurpleCertificateScheme *scheme; | 46 PurpleCertificateScheme *scheme; |
47 PurpleCertificateVerifier *verifier; | |
48 | 47 |
49 g_return_val_if_fail(ver_name != NULL, NULL); | 48 g_return_if_fail(subject_name != NULL); |
50 g_return_val_if_fail(subject_name != NULL, NULL); | |
51 /* If you don't have a cert to check, why are you requesting that it | 49 /* If you don't have a cert to check, why are you requesting that it |
52 be verified? */ | 50 be verified? */ |
53 g_return_val_if_fail(cert_chain != NULL, NULL); | 51 g_return_if_fail(cert_chain != NULL); |
54 g_return_val_if_fail(cb != NULL, NULL); | 52 g_return_if_fail(cb != NULL); |
55 | 53 |
56 /* Locate the verifier, first */ | 54 /* Look up the CertificateScheme */ |
55 scheme = purple_certificate_find_scheme(verifier->scheme_name); | |
56 g_return_if_fail(scheme); | |
57 | 57 |
58 /* Construct and fill in the request fields */ | 58 /* Construct and fill in the request fields */ |
59 vrq = g_new(PurpleCertificateVerificationRequest, 1); | 59 vrq = g_new(PurpleCertificateVerificationRequest, 1); |
60 vrq->verifier = verifier; | |
61 vrq->scheme = scheme; | |
62 vrq->subject_name = g_strdup(subject_name); | |
60 vrq->cert_chain = cert_chain; | 63 vrq->cert_chain = cert_chain; |
61 vrq->cb = cb; | 64 vrq->cb = cb; |
62 vrq->cb_data = cb_data; | 65 vrq->cb_data = cb_data; |
63 vrq->subject_name = g_strdup(subject_name); | 66 |
67 /* Initiate verification */ | |
68 (verifier->start_verification)(vrq); | |
64 } | 69 } |
65 | 70 |
66 PurpleCertificateScheme * | 71 PurpleCertificateScheme * |
67 purple_certificate_find_scheme(const gchar *name) | 72 purple_certificate_find_scheme(const gchar *name) |
68 { | 73 { |