[glib-networking] gnutls: Support unencrypted PKCS#8 keys



commit 144ec49f0fa82d3624a485f99483cb4618f3ae9f
Author: Dan Winship <danw gnome org>
Date:   Fri Nov 18 19:48:13 2011 -0500

    gnutls: Support unencrypted PKCS#8 keys
    
    and test that in tls/tests/certificate
    
    https://bugzilla.gnome.org/show_bug.cgi?id=664321

 tls/gnutls/gtlscertificate-gnutls.c |   18 ++++++++++++++++++
 tls/tests/files/server-and-key.pem  |   19 ++++++++++---------
 2 files changed, 28 insertions(+), 9 deletions(-)
---
diff --git a/tls/gnutls/gtlscertificate-gnutls.c b/tls/gnutls/gtlscertificate-gnutls.c
index 457e8f7..9227ba2 100644
--- a/tls/gnutls/gtlscertificate-gnutls.c
+++ b/tls/gnutls/gtlscertificate-gnutls.c
@@ -207,6 +207,15 @@ g_tls_certificate_gnutls_set_property (GObject      *object,
         gnutls_x509_privkey_init (&gnutls->priv->key);
       status = gnutls_x509_privkey_import (gnutls->priv->key, &data,
 					   GNUTLS_X509_FMT_DER);
+      if (status != 0)
+	{
+	  int pkcs8_status =
+	    gnutls_x509_privkey_import_pkcs8 (gnutls->priv->key, &data,
+					      GNUTLS_X509_FMT_DER, NULL,
+					      GNUTLS_PKCS_PLAIN);
+	  if (pkcs8_status == 0)
+	    status = 0;
+	}
       if (status == 0)
 	gnutls->priv->have_key = TRUE;
       else if (!gnutls->priv->construct_error)
@@ -229,6 +238,15 @@ g_tls_certificate_gnutls_set_property (GObject      *object,
         gnutls_x509_privkey_init (&gnutls->priv->key);
       status = gnutls_x509_privkey_import (gnutls->priv->key, &data,
 					   GNUTLS_X509_FMT_PEM);
+      if (status != 0)
+	{
+	  int pkcs8_status =
+	    gnutls_x509_privkey_import_pkcs8 (gnutls->priv->key, &data,
+					      GNUTLS_X509_FMT_PEM, NULL,
+					      GNUTLS_PKCS_PLAIN);
+	  if (pkcs8_status == 0)
+	    status = 0;
+	}
       if (status == 0)
 	gnutls->priv->have_key = TRUE;
       else if (!gnutls->priv->construct_error)
diff --git a/tls/tests/files/server-and-key.pem b/tls/tests/files/server-and-key.pem
index 7bf1cff..d09b0b5 100644
--- a/tls/tests/files/server-and-key.pem
+++ b/tls/tests/files/server-and-key.pem
@@ -12,12 +12,13 @@ Gvo0jq88E8mc+bmp4LfXD4wJ7KxYeadQxt75HFRpj4FhFO3DOpVRFgzHlOEo3Fwk
 PZOKjvkT0cbcoEq5whLH25dHoQxGoVQgFyAP5s+7Vp5AlHh8Y/vAoXeEVyy/RCIH
 QkhUlAflfDMcrrYjsmwoOPSjhx6Mm/AopX4=
 -----END CERTIFICATE-----
------BEGIN RSA PRIVATE KEY-----
-MIIBOgIBAAJBANhJxPGTnlcGZsMz3PPA76CtXJITiu51a7MfY+k5siiept+FGgBq
-UpWW4b2O9scjzV5fEJ1I5u/UoE/Wxs3lHOkCAwEAAQJAURSWd9lW6ljD/TlcAyS4
-sAtNQJWC55GtJiEGW0/9savXVHPRllN5IlcOJS/L//rD47UzwmGHcxxzsg3p+s51
-YQIhAPaiU+wbUL0cQrxqwIa/TEtNtrU3T21vNvQaFLSHh+uHAiEA4IBuYuPL+xz2
-nDwSB9UWklYV5fKhwqUA96qyMNxTMA8CIGvD6h+Un+bB3nctvgoitFeDEX6FOHN8
-0OpAKyPmxIEpAiEAiwNb1wYhN9QebG3R6GGtQV3m32VXftR3feSHxDOZm0cCIEpA
-7kMFeeQQZb1qYd1PMFSDCG+BkrWh/Fud+VvFAWxI
------END RSA PRIVATE KEY-----
+-----BEGIN PRIVATE KEY-----
+MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEA2EnE8ZOeVwZmwzPc
+88DvoK1ckhOK7nVrsx9j6TmyKJ6m34UaAGpSlZbhvY72xyPNXl8QnUjm79SgT9bG
+zeUc6QIDAQABAkBRFJZ32VbqWMP9OVwDJLiwC01AlYLnka0mIQZbT/2xq9dUc9GW
+U3kiVw4lL8v/+sPjtTPCYYdzHHOyDen6znVhAiEA9qJT7BtQvRxCvGrAhr9MS022
+tTdPbW829BoUtIeH64cCIQDggG5i48v7HPacPBIH1RaSVhXl8qHCpQD3qrIw3FMw
+DwIga8PqH5Sf5sHedy2+CiK0V4MRfoU4c3zQ6kArI+bEgSkCIQCLA1vXBiE31B5s
+bdHoYa1BXebfZVd+1Hd95IfEM5mbRwIgSkDuQwV55BBlvWph3U8wVIMIb4GStaH8
+W535W8UBbEg=
+-----END PRIVATE KEY-----



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]