/pidgin/main: f47eb0bc58c9: Minor gnutls cert cleanup.

Mark Doliner <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: f47eb0bc58c9e369cf3d5e8b257d7308ac0202d7
Author:	 Mark Doliner <[email protected]>
Date:	 2014-11-02 11:08 -0800
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/f47eb0bc58c9

Description:

Minor gnutls cert cleanup.

Don't use the purple_certificate_get_unique_id and
purple_certificate_get_issuer_unique_id. We can just use our
x509_cert_dn and x509_issuer_dn functions directly. It's stupid to call
out to the libpurple certificate code only to have that code call a function
in our plugin code--instead, just call the plugin code directly.

diffstat:

 libpurple/plugins/ssl/ssl-gnutls.c |  22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 deletions(-)

diffs (68 lines):

diff --git a/libpurple/plugins/ssl/ssl-gnutls.c b/libpurple/plugins/ssl/ssl-gnutls.c
--- a/libpurple/plugins/ssl/ssl-gnutls.c
+++ b/libpurple/plugins/ssl/ssl-gnutls.c
@@ -118,6 +118,9 @@ static gnutls_priority_t default_priorit
 static GHashTable *host_priorities = NULL;
 #endif
 
+static gchar *x509_cert_dn(PurpleCertificate *crt);
+static gchar *x509_issuer_dn(PurpleCertificate *crt);
+
 static void
 ssl_gnutls_log(int level, const char *str)
 {
@@ -1034,10 +1037,9 @@ x509_certificate_signed_by(PurpleCertifi
 					   ret);
 		} else {
 			gchar *crt_id, *issuer_id, *crt_issuer_id;
-			crt_id = purple_certificate_get_unique_id(crt);
-			issuer_id = purple_certificate_get_unique_id(issuer);
-			crt_issuer_id =
-				purple_certificate_get_issuer_unique_id(crt);
+			crt_id = x509_cert_dn(crt);
+			issuer_id = x509_cert_dn(issuer);
+			crt_issuer_id = x509_issuer_dn(crt);
 			purple_debug_info("gnutls/x509",
 					  "Certificate %s is issued by "
 					  "%s, which does not match %s.\n",
@@ -1059,7 +1061,7 @@ x509_certificate_signed_by(PurpleCertifi
 	if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
 		if (gnutls_x509_crt_get_version(issuer_dat) >= 3) {
 			/* Reject cert (no basic constraints and cert version is >= 3). */
-			gchar *issuer_id = purple_certificate_get_unique_id(issuer);
+			gchar *issuer_id = x509_cert_dn(issuer);
 			purple_debug_info("gnutls/x509", "Rejecting cert because the "
 					"basic constraints extension is missing from issuer cert "
 					"for %s. The basic constraints extension is required on "
@@ -1079,7 +1081,7 @@ x509_certificate_signed_by(PurpleCertifi
 		}
 	} else if (ret <= 0) {
 		/* Reject cert (CA flag is false in basic constraints). */
-		gchar *issuer_id = purple_certificate_get_unique_id(issuer);
+		gchar *issuer_id = x509_cert_dn(issuer);
 		purple_debug_info("gnutls/x509", "Rejecting cert because the CA flag "
 				"is set to false in the basic constraints extension for "
 				"issuer cert %s. ret=%d\n",
@@ -1113,8 +1115,8 @@ x509_certificate_signed_by(PurpleCertifi
 		 * perfectly clear as soon as someone looks at the debug log is
 		 * generated.
 		 */
-		crt_id = purple_certificate_get_unique_id(crt);
-		issuer_id = purple_certificate_get_issuer_unique_id(crt);
+		crt_id = x509_cert_dn(crt);
+		issuer_id = x509_issuer_dn(crt);
 		purple_debug_warning("gnutls/x509",
 				"Insecure hash algorithm used by %s to sign %s\n",
 				issuer_id, crt_id);
@@ -1125,9 +1127,9 @@ x509_certificate_signed_by(PurpleCertifi
 		/* Signature didn't check out, but at least
 		   there were no errors*/
 		if (!crt_id)
-			crt_id = purple_certificate_get_unique_id(crt);
+			crt_id = x509_cert_dn(crt);
 		if (!issuer_id)
-			issuer_id = purple_certificate_get_issuer_unique_id(crt);
+			issuer_id = x509_issuer_dn(crt);
 		purple_debug_error("gnutls/x509",
 				  "Bad signature from %s on %s\n",
 				  issuer_id, crt_id);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.