[glib-networking] gnutls: Support unencrypted PKCS#8 keys
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib-networking] gnutls: Support unencrypted PKCS#8 keys
- Date: Sat, 19 Nov 2011 01:32:08 +0000 (UTC)
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]