Mercurial > pidgin
comparison libpurple/certificate.c @ 19008:7fd9bd55f8d0
- Add certificate_check_subject_name and associated machinery
- Update GnuTLS to support the above
- tls_cached verifier now uses check_subject_name instead of strcmp
author | William Ehlhardt <williamehlhardt@gmail.com> |
---|---|
date | Mon, 09 Jul 2007 03:47:36 +0000 |
parents | b207701cb5a3 |
children | b64aa0222a7a |
comparison
equal
deleted
inserted
replaced
19007:8228c5b1d181 | 19008:7fd9bd55f8d0 |
---|---|
184 subject_name = (scheme->get_subject_name)(crt); | 184 subject_name = (scheme->get_subject_name)(crt); |
185 | 185 |
186 return subject_name; | 186 return subject_name; |
187 } | 187 } |
188 | 188 |
189 gboolean | |
190 purple_certificate_check_subject_name(PurpleCertificate *crt, const gchar *name) | |
191 { | |
192 PurpleCertificateScheme *scheme; | |
193 | |
194 g_return_val_if_fail(crt, FALSE); | |
195 g_return_val_if_fail(crt->scheme, FALSE); | |
196 g_return_val_if_fail(name, FALSE); | |
197 | |
198 scheme = crt->scheme; | |
199 | |
200 /* TODO: Instead of failing, maybe use get_subject_name and strcmp? */ | |
201 g_return_val_if_fail(scheme->check_subject_name, FALSE); | |
202 | |
203 return (scheme->check_subject_name)(crt, name); | |
204 } | |
205 | |
206 | |
189 gchar * | 207 gchar * |
190 purple_certificate_pool_mkpath(PurpleCertificatePool *pool, const gchar *id) | 208 purple_certificate_pool_mkpath(PurpleCertificatePool *pool, const gchar *id) |
191 { | 209 { |
192 gchar *path; | 210 gchar *path; |
193 | 211 |
479 | 497 |
480 /* Get the cert Common Name */ | 498 /* Get the cert Common Name */ |
481 cn = purple_certificate_get_subject_name(crt); | 499 cn = purple_certificate_get_subject_name(crt); |
482 | 500 |
483 /* Determine whether the name matches */ | 501 /* Determine whether the name matches */ |
484 /* TODO: Worry about strcmp safety? */ | 502 if (purple_certificate_check_subject_name(crt, vrq->subject_name)) { |
485 if (!strcmp(cn, vrq->subject_name)) { | |
486 cn_match = _(""); | 503 cn_match = _(""); |
487 } else { | 504 } else { |
488 cn_match = _("(DOES NOT MATCH)"); | 505 cn_match = _("(DOES NOT MATCH)"); |
489 } | 506 } |
490 | 507 |