gnome-keyring r1209 - in trunk: . daemon/pk
- From: nnielsen svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-keyring r1209 - in trunk: . daemon/pk
- Date: Wed, 30 Jul 2008 14:09:42 +0000 (UTC)
Author: nnielsen
Date: Wed Jul 30 14:09:42 2008
New Revision: 1209
URL: http://svn.gnome.org/viewvc/gnome-keyring?rev=1209&view=rev
Log:
* daemon/pk/gkr-pk-cert.c:
* daemon/pk/gkr-pk-index.c:
* daemon/pk/gkr-pk-object.c:
* daemon/pk/gkr-pk-object.h:
* daemon/pk/gkr-pk-root-storage.c: When a certificate is in the Roots
storage, assume it is a CA if no basic constraints are present.
Modified:
trunk/ChangeLog
trunk/daemon/pk/gkr-pk-cert.c
trunk/daemon/pk/gkr-pk-index.c
trunk/daemon/pk/gkr-pk-object.c
trunk/daemon/pk/gkr-pk-object.h
trunk/daemon/pk/gkr-pk-root-storage.c
Modified: trunk/daemon/pk/gkr-pk-cert.c
==============================================================================
--- trunk/daemon/pk/gkr-pk-cert.c (original)
+++ trunk/daemon/pk/gkr-pk-cert.c Wed Jul 30 14:09:42 2008
@@ -466,6 +466,8 @@
if ((ret = load_certificate (cert)) != CKR_OK)
return ret;
value = 0; /* unknown */
+
+ /* Read in the Basic Constraints section */
data = gkr_pk_cert_get_extension (cert, OID_BASIC_CONSTRAINTS, &n_data, NULL);
if (data) {
GkrPkixResult res;
@@ -477,7 +479,12 @@
return CKR_FUNCTION_FAILED;
if (is_ca)
value = 2; /* authority */
+
+ /* If no basic constraints section, see if it is marked as a CA manually */
+ } else if (gkr_pk_object_index_get_boolean (obj, "default-ca")) {
+ value = 2; /* authority */
}
+
gkr_pk_attribute_set_ulong (attr, value);
return CKR_OK;
Modified: trunk/daemon/pk/gkr-pk-index.c
==============================================================================
--- trunk/daemon/pk/gkr-pk-index.c (original)
+++ trunk/daemon/pk/gkr-pk-index.c Wed Jul 30 14:09:42 2008
@@ -504,7 +504,6 @@
if (item != NULL)
attr = gkr_attribute_list_find (item->attributes, field);
- attr = gkr_attribute_list_find (item->attributes, field);
if (!attr) {
attr = find_default_attribute (index, field);
if (!attr)
Modified: trunk/daemon/pk/gkr-pk-object.c
==============================================================================
--- trunk/daemon/pk/gkr-pk-object.c (original)
+++ trunk/daemon/pk/gkr-pk-object.c Wed Jul 30 14:09:42 2008
@@ -926,6 +926,23 @@
return gkr_pk_index_has_value (index, object->digest, field);
}
+gboolean
+gkr_pk_object_index_get_boolean (GkrPkObject *object, const gchar *field)
+{
+ GkrPkIndex *index = NULL;
+
+ g_return_val_if_fail (GKR_IS_PK_OBJECT (object), FALSE);
+ g_return_val_if_fail (object->digest, FALSE);
+ g_return_val_if_fail (field, FALSE);
+
+ if (object->storage) {
+ g_return_val_if_fail (GKR_IS_PK_STORAGE (object->storage), FALSE);
+ index = gkr_pk_storage_index (object->storage, object->location);
+ }
+
+ return gkr_pk_index_get_boolean (index, object->digest, field, FALSE);
+}
+
GQuark*
gkr_pk_object_index_get_quarks (GkrPkObject *object, const gchar *field)
{
@@ -936,7 +953,7 @@
g_return_val_if_fail (field, NULL);
if (object->storage) {
- g_return_val_if_fail (GKR_IS_PK_STORAGE (object->storage), FALSE);
+ g_return_val_if_fail (GKR_IS_PK_STORAGE (object->storage), NULL);
index = gkr_pk_storage_index (object->storage, object->location);
}
@@ -953,7 +970,7 @@
g_return_val_if_fail (field, NULL);
if (object->storage) {
- g_return_val_if_fail (GKR_IS_PK_STORAGE (object->storage), FALSE);
+ g_return_val_if_fail (GKR_IS_PK_STORAGE (object->storage), NULL);
index = gkr_pk_storage_index (object->storage, object->location);
}
@@ -971,7 +988,7 @@
g_return_val_if_fail (field, NULL);
if (object->storage) {
- g_return_val_if_fail (GKR_IS_PK_STORAGE (object->storage), FALSE);
+ g_return_val_if_fail (GKR_IS_PK_STORAGE (object->storage), NULL);
index = gkr_pk_storage_index (object->storage, object->location);
}
Modified: trunk/daemon/pk/gkr-pk-object.h
==============================================================================
--- trunk/daemon/pk/gkr-pk-object.h (original)
+++ trunk/daemon/pk/gkr-pk-object.h Wed Jul 30 14:09:42 2008
@@ -164,6 +164,9 @@
gboolean gkr_pk_object_index_has_value (GkrPkObject *object,
const gchar *field);
+gboolean gkr_pk_object_index_get_boolean (GkrPkObject *object,
+ const gchar *field);
+
GQuark* gkr_pk_object_index_get_quarks (GkrPkObject *object,
const gchar *field);
Modified: trunk/daemon/pk/gkr-pk-root-storage.c
==============================================================================
--- trunk/daemon/pk/gkr-pk-root-storage.c (original)
+++ trunk/daemon/pk/gkr-pk-root-storage.c Wed Jul 30 14:09:42 2008
@@ -224,6 +224,7 @@
/* Default attributes for our index */
attrs = gnome_keyring_attribute_list_new ();
gnome_keyring_attribute_list_append_string (attrs, "user-trust", "trusted");
+ gnome_keyring_attribute_list_append_uint32 (attrs, "default-ca", 1);
pv->index = gkr_pk_index_open_login (attrs);
if (!pv->index)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]