summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@redhat.com>2015-02-10 18:14:06 +0100
committerChristophe Fergeau <cfergeau@redhat.com>2015-05-20 17:21:14 +0200
commit79bcd576a83ae561010c696653ce89cc5ee13771 (patch)
treeac4c3314b85a17ed52acec2b5975cbb18c266a56
parent572f5544c3e49ea9d0364a6e8766c77bc9765a94 (diff)
-rw-r--r--daemon/ssh-agent/gkd-ssh-agent-ops.c11
-rw-r--r--pkcs11/gkm/gkm-credential.c3
-rw-r--r--pkcs11/gkm/gkm-object.c1
-rw-r--r--pkcs11/gkm/gkm-private-xsa-key.c4
-rw-r--r--pkcs11/ssh-store/gkm-ssh-private-key.c2
5 files changed, 19 insertions, 2 deletions
diff --git a/daemon/ssh-agent/gkd-ssh-agent-ops.c b/daemon/ssh-agent/gkd-ssh-agent-ops.c
index 5b001bee..f8f74807 100644
--- a/daemon/ssh-agent/gkd-ssh-agent-ops.c
+++ b/daemon/ssh-agent/gkd-ssh-agent-ops.c
@@ -992,8 +992,10 @@ unlock_and_sign (GckSession *session, GckObject *key, gulong mech_type, const gu
/* First check if we should authenticate the key */
attrs = gck_object_get (key, NULL, err, CKA_ALWAYS_AUTHENTICATE, GCK_INVALID);
- if (!attrs)
+ if (!attrs) {
+ g_warning("!attrs");
return NULL;
+ }
/* Authenticate the key if necessary, this allows long term */
if (!gck_attributes_find_boolean (attrs, CKA_ALWAYS_AUTHENTICATE, &always))
@@ -1001,6 +1003,7 @@ unlock_and_sign (GckSession *session, GckObject *key, gulong mech_type, const gu
gck_attributes_unref (attrs);
+ g_warning("always: %d", always);
if (always == TRUE) {
gck_builder_add_ulong (&builder, CKA_CLASS, CKO_G_CREDENTIAL);
gck_builder_add_boolean (&builder, CKA_TOKEN, FALSE);
@@ -1009,6 +1012,7 @@ unlock_and_sign (GckSession *session, GckObject *key, gulong mech_type, const gu
load_user_constraints (&builder);
cred = gck_session_create_object (session, gck_builder_end (&builder), NULL, err);
+ g_warning("cred: %p", cred);
if (cred == NULL)
return NULL;
@@ -1073,6 +1077,7 @@ op_sign_request (GkdSshAgentCall *call)
search_keys_like_attributes (call->modules, NULL, attrs, CKO_PUBLIC_KEY, return_private_matching, &key);
gck_attributes_unref (attrs);
+ g_warning("key: %p", key);
if (!key) {
egg_buffer_add_byte (call->resp, GKD_SSH_RES_FAILURE);
return TRUE;
@@ -1096,7 +1101,9 @@ op_sign_request (GkdSshAgentCall *call)
result = unlock_and_sign (session, key, mech, hash, n_hash, &n_result, &error);
g_object_unref (session);
- g_object_unref (key);
+ g_warning("unreffing key");
+ //g_object_unref (key);
+ g_warning("key unreffed");
g_free (hash);
if (error) {
diff --git a/pkcs11/gkm/gkm-credential.c b/pkcs11/gkm/gkm-credential.c
index 16baa1af..74572674 100644
--- a/pkcs11/gkm/gkm-credential.c
+++ b/pkcs11/gkm/gkm-credential.c
@@ -82,6 +82,7 @@ factory_create_credential (GkmSession *session, GkmTransaction *transaction,
/* The value is optional */
attr = gkm_attributes_find (attrs, n_attrs, CKA_VALUE);
+ g_warning("attr: %p", attr);
gkm_attributes_consume (attrs, n_attrs, CKA_VALUE, CKA_G_OBJECT, G_MAXULONG);
@@ -127,6 +128,7 @@ object_went_away (gpointer data, GObject *old_object)
{
GkmCredential *self = data;
g_return_if_fail (GKM_IS_CREDENTIAL (self));
+ g_warning("object went away");
self->pv->object = NULL;
self_destruct (self);
}
@@ -205,6 +207,7 @@ gkm_credential_dispose (GObject *obj)
{
GkmCredential *self = GKM_CREDENTIAL (obj);
+ g_warning("dispose cred %p", obj);
if (self->pv->object)
g_object_weak_unref (G_OBJECT (self->pv->object), object_went_away, self);
self->pv->object = NULL;
diff --git a/pkcs11/gkm/gkm-object.c b/pkcs11/gkm/gkm-object.c
index d97caec4..1c17099d 100644
--- a/pkcs11/gkm/gkm-object.c
+++ b/pkcs11/gkm/gkm-object.c
@@ -510,6 +510,7 @@ gkm_object_dispose (GObject *obj)
GkmObject *self = GKM_OBJECT (obj);
GkmObjectTransient *transient;
+ g_warning("dispose object: %p", obj);
if (self->pv->manager) {
if (self->pv->exposed)
gkm_object_expose (self, FALSE);
diff --git a/pkcs11/gkm/gkm-private-xsa-key.c b/pkcs11/gkm/gkm-private-xsa-key.c
index de8c937f..af128984 100644
--- a/pkcs11/gkm/gkm-private-xsa-key.c
+++ b/pkcs11/gkm/gkm-private-xsa-key.c
@@ -178,6 +178,7 @@ acquire_from_credential (GkmCredential *cred, GkmObject *object, gpointer user_d
g_assert (!*result);
/* The sexp we stored on the credential */
+ g_warning("acquire from credential");
*result = gkm_credential_pop_data (cred, GKM_BOXED_SEXP);
if (*result != NULL)
return TRUE;
@@ -246,6 +247,7 @@ gkm_private_xsa_key_real_get_attribute (GkmObject *base, GkmSession *session, CK
have = self->pv->sexp ? TRUE : FALSE;
if (!have && session)
have = gkm_credential_for_each (session, base, have_from_credential, NULL);
+ g_warning("have: %d (%p)", have, base);
return gkm_attribute_set_bool (attr, !have);
case CKA_MODULUS:
@@ -353,6 +355,7 @@ gkm_private_xsa_key_set_unlocked_private (GkmPrivateXsaKey *self, GkmSexp *sexp)
{
g_return_if_fail (GKM_IS_PRIVATE_XSA_KEY (self));
g_return_if_fail (sexp);
+ g_warning("set unlocked %p", self);
if (sexp)
gkm_sexp_ref (sexp);
@@ -365,6 +368,7 @@ void
gkm_private_xsa_key_set_locked_private (GkmPrivateXsaKey *self, GkmCredential *cred,
GkmSexp *sexp)
{
+ g_warning("set locked %p", self);
g_return_if_fail (GKM_IS_PRIVATE_XSA_KEY (self));
g_return_if_fail (GKM_IS_CREDENTIAL (cred));
g_return_if_fail (gkm_credential_get_object (cred) == GKM_OBJECT (self));
diff --git a/pkcs11/ssh-store/gkm-ssh-private-key.c b/pkcs11/ssh-store/gkm-ssh-private-key.c
index fe6dc9f0..20757c14 100644
--- a/pkcs11/ssh-store/gkm-ssh-private-key.c
+++ b/pkcs11/ssh-store/gkm-ssh-private-key.c
@@ -172,6 +172,7 @@ gkm_ssh_private_key_unlock (GkmObject *base, GkmCredential *cred)
gsize n_password;
CK_RV rv;
+ g_warning("unlock ssh private key %p", base);
if (!self->is_encrypted)
return CKR_OK;
@@ -221,6 +222,7 @@ gkm_ssh_private_key_dispose (GObject *obj)
{
GkmSshPrivateKey *self = GKM_SSH_PRIVATE_KEY (obj);
+ g_warning("disposing ssh private key %p", obj);
if (self->pubkey)
g_object_unref (self->pubkey);
self->pubkey = NULL;