mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-07-24 02:47:52 +02:00
gtlscertificate: Add support for PKCS #11 backed certificates
This adds properties to allow backends to expose PKCS #11 support.
This commit is contained in:
committed by
Patrick Griffis
parent
96c25ceba6
commit
b6d8efbebc
@@ -91,6 +91,8 @@ struct _GTestTlsCertificate {
|
||||
gchar *key_pem;
|
||||
gchar *cert_pem;
|
||||
GTlsCertificate *issuer;
|
||||
gchar *pkcs11_uri;
|
||||
gchar *private_key_pkcs11_uri;
|
||||
};
|
||||
|
||||
struct _GTestTlsCertificateClass {
|
||||
@@ -103,7 +105,9 @@ enum
|
||||
PROP_CERT_CERTIFICATE_PEM,
|
||||
PROP_CERT_PRIVATE_KEY,
|
||||
PROP_CERT_PRIVATE_KEY_PEM,
|
||||
PROP_CERT_ISSUER
|
||||
PROP_CERT_ISSUER,
|
||||
PROP_CERT_PKCS11_URI,
|
||||
PROP_CERT_PRIVATE_KEY_PKCS11_URI,
|
||||
};
|
||||
|
||||
static void g_test_tls_certificate_initable_iface_init (GInitableIface *iface);
|
||||
@@ -141,6 +145,15 @@ g_test_tls_certificate_get_property (GObject *object,
|
||||
case PROP_CERT_ISSUER:
|
||||
g_value_set_object (value, cert->issuer);
|
||||
break;
|
||||
case PROP_CERT_PKCS11_URI:
|
||||
/* This test value simulates a backend that ignores the value
|
||||
because it is unsupported */
|
||||
if (g_strcmp0 (cert->pkcs11_uri, "unsupported") != 0)
|
||||
g_value_set_string (value, cert->pkcs11_uri);
|
||||
break;
|
||||
case PROP_CERT_PRIVATE_KEY_PKCS11_URI:
|
||||
g_value_set_string (value, cert->private_key_pkcs11_uri);
|
||||
break;
|
||||
default:
|
||||
g_assert_not_reached ();
|
||||
break;
|
||||
@@ -166,6 +179,12 @@ g_test_tls_certificate_set_property (GObject *object,
|
||||
case PROP_CERT_ISSUER:
|
||||
cert->issuer = g_value_dup_object (value);
|
||||
break;
|
||||
case PROP_CERT_PKCS11_URI:
|
||||
cert->pkcs11_uri = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_CERT_PRIVATE_KEY_PKCS11_URI:
|
||||
cert->private_key_pkcs11_uri = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_CERT_CERTIFICATE:
|
||||
case PROP_CERT_PRIVATE_KEY:
|
||||
/* ignore */
|
||||
@@ -183,6 +202,8 @@ g_test_tls_certificate_finalize (GObject *object)
|
||||
|
||||
g_free (cert->cert_pem);
|
||||
g_free (cert->key_pem);
|
||||
g_free (cert->pkcs11_uri);
|
||||
g_free (cert->private_key_pkcs11_uri);
|
||||
g_clear_object (&cert->issuer);
|
||||
|
||||
G_OBJECT_CLASS (g_test_tls_certificate_parent_class)->finalize (object);
|
||||
@@ -205,6 +226,8 @@ g_test_tls_certificate_class_init (GTestTlsCertificateClass *test_class)
|
||||
g_object_class_override_property (gobject_class, PROP_CERT_PRIVATE_KEY, "private-key");
|
||||
g_object_class_override_property (gobject_class, PROP_CERT_PRIVATE_KEY_PEM, "private-key-pem");
|
||||
g_object_class_override_property (gobject_class, PROP_CERT_ISSUER, "issuer");
|
||||
g_object_class_override_property (gobject_class, PROP_CERT_PKCS11_URI, "pkcs11-uri");
|
||||
g_object_class_override_property (gobject_class, PROP_CERT_PRIVATE_KEY_PKCS11_URI, "private-key-pkcs11-uri");
|
||||
}
|
||||
|
||||
static void
|
||||
|
Reference in New Issue
Block a user