summaryrefslogtreecommitdiff
path: root/gcr
diff options
context:
space:
mode:
authorCorentin Noël <corentin@elementary.io>2022-02-07 10:53:19 +0100
committerCorentin Noël <tintou@noel.tf>2022-04-09 00:44:24 +0200
commit0f2740cd8dcd579118fdd672dd820c8a724980f9 (patch)
treefe229765765ce524b59623aff1bf3ffe1ed844a5 /gcr
parent851348559ac115fe4532acb0e179bd377f84b0ce (diff)
downloadgcr-0f2740cd8dcd579118fdd672dd820c8a724980f9.tar.gz
gck: Remove floating capabilities to GckAttributes
It is not necessary and makes it difficult to interact with GObject introspected languages. Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Diffstat (limited to 'gcr')
-rw-r--r--gcr/gcr-importer.c6
-rw-r--r--gcr/gcr-openssh.c4
-rw-r--r--gcr/gcr-parser.c2
-rw-r--r--gcr/gcr-pkcs11-certificate.c2
-rw-r--r--gcr/gcr-pkcs11-importer.c14
-rw-r--r--gcr/gcr-subject-public-key.c6
-rw-r--r--gcr/gcr-trust.c12
-rw-r--r--gcr/test-fingerprint.c2
-rw-r--r--gcr/test-subject-public-key.c6
9 files changed, 29 insertions, 25 deletions
diff --git a/gcr/gcr-importer.c b/gcr/gcr-importer.c
index 5e41ab3..f1916f0 100644
--- a/gcr/gcr-importer.c
+++ b/gcr/gcr-importer.c
@@ -128,11 +128,9 @@ gcr_importer_default_init (GcrImporterInterface *iface)
/**
* gcr_importer_register:
* @importer_type: the GType of the importer being registered
- * @attrs: the attributes that this importer is compatible with
+ * @attrs: (transfer full): the attributes that this importer is compatible with
*
* Register an importer to handle parsed items that match the given attributes.
- *
- * If @attrs are a floating reference, then it is consumed.
*/
void
gcr_importer_register (GType importer_type,
@@ -144,7 +142,7 @@ gcr_importer_register (GType importer_type,
registered_importers = g_array_new (FALSE, FALSE, sizeof (GcrRegistered));
registered.importer_type = importer_type;
- registered.attrs = gck_attributes_ref_sink (attrs);
+ registered.attrs = attrs;
g_array_append_val (registered_importers, registered);
registered_sorted = FALSE;
}
diff --git a/gcr/gcr-openssh.c b/gcr/gcr-openssh.c
index af4d550..a4b7ebe 100644
--- a/gcr/gcr-openssh.c
+++ b/gcr/gcr-openssh.c
@@ -230,7 +230,7 @@ parse_v1_public_line (const gchar *line,
if (word_options)
options = g_strndup (word_options, len_options);
- attrs = gck_attributes_ref_sink (gck_builder_end (&builder));
+ attrs = gck_builder_end (&builder);
if (callback != NULL) {
bytes = g_bytes_new_with_free_func (outer, n_outer,
@@ -542,7 +542,7 @@ parse_v2_public_line (const gchar *line,
gck_builder_add_string (&builder, CKA_LABEL, label);
}
- attrs = gck_attributes_ref_sink (gck_builder_end (&builder));
+ attrs = gck_builder_end (&builder);
if (callback != NULL) {
bytes = g_bytes_new_with_free_func (outer, n_outer,
diff --git a/gcr/gcr-parser.c b/gcr/gcr-parser.c
index ba3927e..1de17f9 100644
--- a/gcr/gcr-parser.c
+++ b/gcr/gcr-parser.c
@@ -482,7 +482,7 @@ parsed_fire (GcrParser *self,
g_assert (parsed == self->pv->parsed);
g_assert (parsed->attrs == NULL);
- parsed->attrs = gck_attributes_ref_sink (gck_builder_end (&parsed->builder));
+ parsed->attrs = gck_builder_end (&parsed->builder);
g_object_notify (G_OBJECT (self), "parsed-description");
g_object_notify (G_OBJECT (self), "parsed-attributes");
diff --git a/gcr/gcr-pkcs11-certificate.c b/gcr/gcr-pkcs11-certificate.c
index e3c3b55..db35aba 100644
--- a/gcr/gcr-pkcs11-certificate.c
+++ b/gcr/gcr-pkcs11-certificate.c
@@ -74,7 +74,7 @@ prepare_lookup_certificate_issuer (GcrCertificate *cert)
gck_builder_add_data (&builder, CKA_SUBJECT, data, n_data);
g_free (data);
- return gck_attributes_ref_sink (gck_builder_end (&builder));
+ return gck_builder_end (&builder);
}
static GcrCertificate*
diff --git a/gcr/gcr-pkcs11-importer.c b/gcr/gcr-pkcs11-importer.c
index b686742..8f65f35 100644
--- a/gcr/gcr-pkcs11-importer.c
+++ b/gcr/gcr-pkcs11-importer.c
@@ -306,7 +306,7 @@ supplement_attributes (GcrPkcs11Importer *self,
}
gck_attributes_unref (attrs);
- l->data = attrs = gck_attributes_ref_sink (gck_builder_end (&builder));
+ l->data = attrs = gck_builder_end (&builder);
switch (klass) {
case CKO_CERTIFICATE:
@@ -340,14 +340,14 @@ supplement_attributes (GcrPkcs11Importer *self,
supplement_with_attributes (&builder, supplements);
supplement_id_for_data (&builder, nonce, sizeof (nonce),
fingerprint, strlen (fingerprint));
- g_queue_push_tail (queue, gck_attributes_ref_sink (gck_builder_end (&builder)));
+ g_queue_push_tail (queue, gck_builder_end (&builder));
g_hash_table_insert (paired, pair->private_key, "present");
gck_builder_add_all (&builder, pair->certificate);
supplement_with_attributes (&builder, supplements);
supplement_id_for_data (&builder, nonce, sizeof (nonce),
fingerprint, strlen (fingerprint));
- g_queue_push_tail (queue, gck_attributes_ref_sink (gck_builder_end (&builder)));
+ g_queue_push_tail (queue, gck_builder_end (&builder));
g_hash_table_insert (paired, pair->certificate, "present");
/* Used the suplements for the pairs, don't use for unpaired stuff */
@@ -371,7 +371,7 @@ supplement_attributes (GcrPkcs11Importer *self,
supplement_id_for_data (&builder, nonce, sizeof (nonce),
&attrs, sizeof (gpointer));
- g_queue_push_tail (queue, gck_attributes_ref_sink (gck_builder_end (&builder)));
+ g_queue_push_tail (queue, gck_builder_end (&builder));
}
}
@@ -392,7 +392,7 @@ complete_supplement (GTask *task,
GckAttributes *attributes;
if (error == NULL) {
- attributes = gck_attributes_ref_sink (gck_builder_end (data->supplement));
+ attributes = gck_builder_end (data->supplement);
supplement_attributes (data->importer, attributes);
gck_attributes_unref (attributes);
@@ -911,7 +911,9 @@ _gcr_pkcs11_importer_queue (GcrPkcs11Importer *self,
gck_builder_add_all (&builder, attrs);
gck_builder_add_string (&builder, CKA_LABEL, label);
attrs = gck_builder_end (&builder);
+ } else {
+ gck_attributes_ref (attrs);
}
- g_queue_push_tail (self->queue, gck_attributes_ref_sink (attrs));
+ g_queue_push_tail (self->queue, attrs);
}
diff --git a/gcr/gcr-subject-public-key.c b/gcr/gcr-subject-public-key.c
index 7ff78f4..1a3f383 100644
--- a/gcr/gcr-subject-public-key.c
+++ b/gcr/gcr-subject-public-key.c
@@ -206,7 +206,9 @@ lookup_public_key (GckObject *object,
gck_attributes_unref (attrs);
session = gck_object_get_session (object);
- objects = gck_session_find_objects (session, gck_builder_end (&builder), cancellable, &error);
+ attrs = gck_builder_end (&builder);
+ objects = gck_session_find_objects (session, attrs, cancellable, &error);
+ gck_attributes_unref (attrs);
g_object_unref (session);
if (error != NULL) {
@@ -567,7 +569,7 @@ _gcr_subject_public_key_load_finish (GAsyncResult *result,
return NULL;
closure = g_task_get_task_data (G_TASK (result));
- attributes = gck_attributes_ref_sink (gck_builder_end (&closure->builder));
+ attributes = gck_builder_end (&closure->builder);
asn = _gcr_subject_public_key_for_attributes (attributes);
if (asn == NULL) {
g_set_error_literal (error, GCK_ERROR, CKR_TEMPLATE_INCONSISTENT,
diff --git a/gcr/gcr-trust.c b/gcr/gcr-trust.c
index 16e1d87..c6ac4de 100644
--- a/gcr/gcr-trust.c
+++ b/gcr/gcr-trust.c
@@ -93,7 +93,7 @@ prepare_is_certificate_pinned (GcrCertificate *certificate, const gchar *purpose
gck_builder_add_string (&builder, CKA_X_PURPOSE, purpose);
gck_builder_add_string (&builder, CKA_X_PEER, peer);
- return gck_attributes_ref_sink (gck_builder_end (&builder));
+ return gck_builder_end (&builder);
}
static gboolean
@@ -255,7 +255,7 @@ prepare_add_pinned_certificate (GcrCertificate *certificate, const gchar *purpos
gck_builder_add_string (&builder, CKA_X_PEER, peer);
gck_builder_add_boolean (&builder, CKA_TOKEN, TRUE);
- return gck_attributes_ref_sink (gck_builder_end (&builder));
+ return gck_builder_end (&builder);
}
static gboolean
@@ -309,7 +309,8 @@ perform_add_pinned_certificate (GckAttributes *search,
} else {
session = gck_slot_open_session (slot, CKF_RW_SESSION, NULL, NULL, &lerr);
if (session != NULL) {
- object = gck_session_create_object (session, gck_builder_end (&builder),
+ GckAttributes *attrs = gck_builder_end (&builder);
+ object = gck_session_create_object (session, attrs,
cancellable, &lerr);
if (object != NULL) {
g_object_unref (object);
@@ -317,6 +318,7 @@ perform_add_pinned_certificate (GckAttributes *search,
}
g_object_unref (session);
+ gck_attributes_unref (attrs);
}
g_object_unref (slot);
@@ -461,7 +463,7 @@ prepare_remove_pinned_certificate (GcrCertificate *certificate, const gchar *pur
gck_builder_add_string (&builder, CKA_X_PURPOSE, purpose);
gck_builder_add_string (&builder, CKA_X_PEER, peer);
- return gck_attributes_ref_sink (gck_builder_end (&builder));
+ return gck_builder_end (&builder);
}
static gboolean
@@ -638,7 +640,7 @@ prepare_is_certificate_anchored (GcrCertificate *certificate, const gchar *purpo
prepare_trust_attrs (certificate, CKT_X_ANCHORED_CERTIFICATE, &builder);
gck_builder_add_string (&builder, CKA_X_PURPOSE, purpose);
- return gck_attributes_ref_sink (gck_builder_end (&builder));
+ return gck_builder_end (&builder);
}
static gboolean
diff --git a/gcr/test-fingerprint.c b/gcr/test-fingerprint.c
index 4932560..002e082 100644
--- a/gcr/test-fingerprint.c
+++ b/gcr/test-fingerprint.c
@@ -115,7 +115,7 @@ build_attributes_for_cert (GBytes *data)
gck_builder_add_ulong (&builder, CKA_CLASS, CKO_CERTIFICATE);
gck_builder_add_ulong (&builder, CKA_CERTIFICATE_TYPE, CKC_X_509);
- return gck_attributes_ref_sink (gck_builder_end (&builder));
+ return gck_builder_end (&builder);
}
static GBytes *
diff --git a/gcr/test-subject-public-key.c b/gcr/test-subject-public-key.c
index 1b52dd3..e213d99 100644
--- a/gcr/test-subject-public-key.c
+++ b/gcr/test-subject-public-key.c
@@ -491,7 +491,7 @@ mock_object_fill (GckObjectCache *object,
gck_builder_set_all (&builder, attrs);
gck_attributes_unref (self->attrs);
- self->attrs = gck_attributes_ref_sink (gck_builder_end (&builder));
+ self->attrs = gck_builder_end (&builder);
}
static void
@@ -568,7 +568,7 @@ perform_load_partial (TestLoading *test,
for (i = 0; i < gck_attributes_count (attributes); i += 2)
gck_builder_add_attribute (&builder, gck_attributes_at (attributes, i));
- partial = gck_attributes_ref_sink (gck_builder_end (&builder));
+ partial = gck_builder_end (&builder);
object = g_object_new (mock_object_get_type (),
"module", test->mo.module,
@@ -649,7 +649,7 @@ test_load_failure_build (TestModule *test,
gck_builder_add_ulong (&builder, CKA_CLASS, CKO_CERTIFICATE);
gck_builder_add_ulong (&builder, CKA_CERTIFICATE_TYPE, CKC_X_509);
gck_builder_add_string (&builder, CKA_VALUE, "invalid value");
- attributes = gck_attributes_ref_sink (gck_builder_end (&builder));
+ attributes = gck_builder_end (&builder);
object = g_object_new (mock_object_get_type (),
"module", test->module,