Mercurial > pidgin
changeset 19987:eda223b50bdc
- Make ssl-nss unique_id and issuer_unique_id work
author | William Ehlhardt <williamehlhardt@gmail.com> |
---|---|
date | Thu, 13 Sep 2007 03:09:49 +0000 |
parents | 3023e0ba2fa6 |
children | 4840b100e14f |
files | libpurple/plugins/ssl/ssl-nss.c |
diffstat | 1 files changed, 33 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/plugins/ssl/ssl-nss.c Wed Sep 12 20:32:09 2007 +0000 +++ b/libpurple/plugins/ssl/ssl-nss.c Thu Sep 13 03:09:49 2007 +0000 @@ -509,7 +509,6 @@ g_free(crt); } -#if 0 /** Determines whether one certificate has been issued and signed by another * * @param crt Certificate to check the signature of @@ -519,12 +518,11 @@ * @TODO Modify this function to return a reason for invalidity? */ static gboolean -x509_certificate_signed_by(PurpleCertificate * crt, - PurpleCertificate * issuer) +x509_signed_by(PurpleCertificate * crt, + PurpleCertificate * issuer) { return FALSE; } -#endif static GByteArray * x509_sha1sum(PurpleCertificate *crt) @@ -564,6 +562,34 @@ } static gchar * +x509_dn (PurpleCertificate *crt) +{ + CERTCertificate *crt_dat; + + g_return_val_if_fail(crt, NULL); + g_return_val_if_fail(crt->scheme == &x509_nss, NULL); + + crt_dat = X509_NSS_DATA(crt); + g_return_val_if_fail(crt_dat, NULL); + + return g_strdup(crt_dat->subjectName); +} + +static gchar * +x509_issuer_dn (PurpleCertificate *crt) +{ + CERTCertificate *crt_dat; + + g_return_val_if_fail(crt, NULL); + g_return_val_if_fail(crt->scheme == &x509_nss, NULL); + + crt_dat = X509_NSS_DATA(crt); + g_return_val_if_fail(crt_dat, NULL); + + return g_strdup(crt_dat->subjectName); +} + +static gchar * x509_common_name (PurpleCertificate *crt) { CERTCertificate *crt_dat; @@ -659,10 +685,10 @@ x509_export_certificate, /* Certificate export function */ x509_copy_certificate, /* Copy */ x509_destroy_certificate, /* Destroy cert */ - NULL, /* Signed-by */ + x509_signed_by, /* Signed-by */ x509_sha1sum, /* SHA1 fingerprint */ - NULL, /* Unique ID */ - NULL, /* Issuer Unique ID */ + x509_dn, /* Unique ID */ + x509_issuer_dn, /* Issuer Unique ID */ x509_common_name, /* Subject name */ x509_check_name, /* Check subject name */ x509_times, /* Activation/Expiration time */