gnome-keyring r1213 - in trunk/gp11: . tests
- From: nnielsen svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-keyring r1213 - in trunk/gp11: . tests
- Date: Sun, 3 Aug 2008 17:03:01 +0000 (UTC)
Author: nnielsen
Date: Sun Aug 3 17:03:01 2008
New Revision: 1213
URL: http://svn.gnome.org/viewvc/gnome-keyring?rev=1213&view=rev
Log:
* gp11/gp11-attributes.c:
* gp11/gp11-object.c:
* gp11/gp11-session.c:
* gp11/gp11-slot.c:
* gp11/gp11.h:
* gp11/tests/unit-test-gp11-attributes.c: More fine tuning of GP11
library. Add missing functions. Clarify date handling.
Modified:
trunk/gp11/gp11-attributes.c
trunk/gp11/gp11-object.c
trunk/gp11/gp11-session.c
trunk/gp11/gp11-slot.c
trunk/gp11/gp11.h
trunk/gp11/tests/unit-test-gp11-attributes.c
Modified: trunk/gp11/gp11-attributes.c
==============================================================================
--- trunk/gp11/gp11-attributes.c (original)
+++ trunk/gp11/gp11-attributes.c Sun Aug 3 17:03:01 2008
@@ -140,35 +140,35 @@
return g_strndup ((gchar*)attr->value, attr->length);
}
-GDate*
-gp11_attribute_get_date (GP11Attribute *attr)
+void
+gp11_attribute_get_date (GP11Attribute *attr, GDate *value)
{
guint year, month, day;
gchar buffer[5];
CK_DATE *date;
gchar *end;
- g_return_val_if_fail (attr, NULL);
- g_return_val_if_fail (attr->length == sizeof (CK_DATE), NULL);
- g_return_val_if_fail (attr->value, NULL);
+ g_return_if_fail (attr);
+ g_return_if_fail (attr->length == sizeof (CK_DATE));
+ g_return_if_fail (attr->value);
date = (CK_DATE*)attr->value;
memset (&buffer, 0, sizeof (buffer));
memcpy (buffer, date->year, 4);
year = strtol (buffer, &end, 10);
- g_return_val_if_fail (end != buffer && !*end, NULL);
+ g_return_if_fail (end != buffer && !*end);
memset (&buffer, 0, sizeof (buffer));
memcpy (buffer, date->month, 2);
month = strtol (buffer, &end, 10);
- g_return_val_if_fail (end != buffer && !*end, NULL);
+ g_return_if_fail (end != buffer && !*end);
memset (&buffer, 0, sizeof (buffer));
memcpy (buffer, date->day, 2);
day = strtol (buffer, &end, 10);
- g_return_val_if_fail (end != buffer && !*end, NULL);
+ g_return_if_fail (end != buffer && !*end);
- return g_date_new_dmy (day, month, year);
+ g_date_set_dmy (value, day, month, year);
}
GP11Attribute*
@@ -222,6 +222,17 @@
gint refs;
};
+GType
+gp11_attributes_get_boxed_type (void)
+{
+ static GType type = 0;
+ if (!type)
+ type = g_boxed_type_register_static ("GP11Attributes",
+ (GBoxedCopyFunc)gp11_attributes_ref,
+ (GBoxedFreeFunc)gp11_attributes_unref);
+ return type;
+}
+
GP11Attributes*
gp11_attributes_new (void)
{
@@ -470,7 +481,7 @@
}
gboolean
-gp11_attributes_find_date (GP11Attributes *attrs, guint attr_type, GDate **value)
+gp11_attributes_find_date (GP11Attributes *attrs, guint attr_type, GDate *value)
{
GP11Attribute *attr;
g_return_val_if_fail (value, FALSE);
@@ -478,15 +489,16 @@
attr = gp11_attributes_find (attrs, attr_type);
if (!attr)
return FALSE;
- *value = gp11_attribute_get_date (attr);
+ gp11_attribute_get_date (attr, value);
return TRUE;
}
-void
+GP11Attributes*
gp11_attributes_ref (GP11Attributes *attrs)
{
- g_return_if_fail (attrs);
+ g_return_val_if_fail (attrs, NULL);
g_atomic_int_inc (&attrs->refs);
+ return attrs;
}
void
Modified: trunk/gp11/gp11-object.c
==============================================================================
--- trunk/gp11/gp11-object.c (original)
+++ trunk/gp11/gp11-object.c Sun Aug 3 17:03:01 2008
@@ -134,6 +134,29 @@
return g_object_new (GP11_TYPE_OBJECT, "module", session->module, "handle", handle, "session", session, NULL);
}
+GList*
+gp11_objects_from_handle_array (GP11Session *session, const GP11Attribute *attr)
+{
+ GList *results = NULL;
+ CK_OBJECT_HANDLE *array;
+ guint i, n_array;
+
+ g_return_val_if_fail (GP11_IS_SESSION (session), NULL);
+
+ array = (CK_OBJECT_HANDLE*)attr->value;
+ n_array = attr->length / sizeof (CK_OBJECT_HANDLE);
+ for (i = 0; i < n_array; ++i)
+ results = g_list_prepend (results, gp11_object_from_handle (session, array[i]));
+ return g_list_reverse (results);
+}
+
+CK_OBJECT_HANDLE
+gp11_object_get_handle (GP11Object *object)
+{
+ g_return_val_if_fail (GP11_IS_OBJECT (object), (CK_OBJECT_HANDLE)-1);
+ return object->handle;
+}
+
/* DESTROY */
typedef struct _Destroy {
@@ -354,7 +377,7 @@
}
GP11Attributes*
-gp11_object_get_full (GP11Object *object, guint *attr_types, gsize n_attr_types,
+gp11_object_get_full (GP11Object *object, const guint *attr_types, gsize n_attr_types,
GCancellable *cancellable, GError **err)
{
GetAttributes args;
@@ -362,7 +385,7 @@
g_return_val_if_fail (GP11_IS_OBJECT (object), FALSE);
memset (&args, 0, sizeof (args));
- args.attr_types = attr_types;
+ args.attr_types = (guint*)attr_types;
args.n_attr_types = n_attr_types;
args.object = object->handle;
@@ -375,7 +398,7 @@
}
void
-gp11_object_get_async (GP11Object *object, guint *attr_types, gsize n_attr_types,
+gp11_object_get_async (GP11Object *object, const guint *attr_types, gsize n_attr_types,
GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
{
GetAttributes *args;
Modified: trunk/gp11/gp11-session.c
==============================================================================
--- trunk/gp11/gp11-session.c (original)
+++ trunk/gp11/gp11-session.c Sun Aug 3 17:03:01 2008
@@ -172,6 +172,13 @@
"handle", handle, "slot", slot, NULL);
}
+CK_SESSION_HANDLE
+gp11_session_get_handle (GP11Session *session)
+{
+ g_return_val_if_fail (GP11_IS_SESSION (session), (CK_SESSION_HANDLE)-1);
+ return session->handle;
+}
+
GP11SessionInfo*
gp11_session_get_info (GP11Session *session)
{
Modified: trunk/gp11/gp11-slot.c
==============================================================================
--- trunk/gp11/gp11-slot.c (original)
+++ trunk/gp11/gp11-slot.c Sun Aug 3 17:03:01 2008
@@ -418,6 +418,13 @@
g_free (mech_info);
}
+CK_SLOT_ID
+gp11_slot_get_handle (GP11Slot *slot)
+{
+ g_return_val_if_fail (GP11_IS_SLOT (slot), (CK_SLOT_ID)-1);
+ return slot->handle;
+}
+
gboolean
gp11_slot_get_reuse_sessions (GP11Slot *slot)
{
Modified: trunk/gp11/gp11.h
==============================================================================
--- trunk/gp11/gp11.h (original)
+++ trunk/gp11/gp11.h Sun Aug 3 17:03:01 2008
@@ -93,7 +93,8 @@
gchar* gp11_attribute_get_string (GP11Attribute *attr);
-GDate* gp11_attribute_get_date (GP11Attribute *attr);
+void gp11_attribute_get_date (GP11Attribute *attr,
+ GDate* value);
GP11Attribute* gp11_attribute_dup (GP11Attribute *attr);
@@ -101,7 +102,12 @@
void gp11_attribute_free (GP11Attribute *attr);
+
typedef struct _GP11Attributes GP11Attributes;
+
+#define GP11_TYPE_ATTRIBUTES (gp11_attributes_get_boxed_type ())
+
+GType gp11_attributes_get_boxed_type (void) G_GNUC_CONST;
GP11Attributes* gp11_attributes_new (void);
@@ -157,11 +163,11 @@
gboolean gp11_attributes_find_date (GP11Attributes *attrs,
guint attr_type,
- GDate **value);
+ GDate *value);
gulong gp11_attributes_count (GP11Attributes *attrs);
-void gp11_attributes_ref (GP11Attributes *attrs);
+GP11Attributes* gp11_attributes_ref (GP11Attributes *attrs);
void gp11_attributes_unref (GP11Attributes *attrs);
@@ -311,6 +317,8 @@
GType gp11_slot_get_type (void) G_GNUC_CONST;
+CK_SLOT_ID gp11_slot_get_handle (GP11Slot *slot);
+
gboolean gp11_slot_get_reuse_sessions (GP11Slot *slot);
void gp11_slot_set_reuse_sessions (GP11Slot *slot,
@@ -413,6 +421,8 @@
GP11Session* gp11_session_from_handle (GP11Slot *slot, CK_SESSION_HANDLE handle);
+CK_SESSION_HANDLE gp11_session_get_handle (GP11Session *session);
+
GP11SessionInfo* gp11_session_get_info (GP11Session *session);
#if UNIMPLEMENTED
@@ -1158,6 +1168,11 @@
GP11Object* gp11_object_from_handle (GP11Session *session,
CK_OBJECT_HANDLE handle);
+GList* gp11_objects_from_handle_array (GP11Session *session,
+ const GP11Attribute *attr);
+
+CK_OBJECT_HANDLE gp11_object_get_handle (GP11Object *object);
+
#ifdef UNIMPLEMENTED
GP11Object* gp11_object_copy (GP11Object *object,
@@ -1239,13 +1254,13 @@
...);
GP11Attributes* gp11_object_get_full (GP11Object *object,
- guint *attr_types,
+ const guint *attr_types,
gsize n_attr_types,
GCancellable *cancellable,
GError **err);
void gp11_object_get_async (GP11Object *object,
- guint *attr_types,
+ const guint *attr_types,
gsize n_attr_types,
GCancellable *cancellable,
GAsyncReadyCallback callback,
Modified: trunk/gp11/tests/unit-test-gp11-attributes.c
==============================================================================
--- trunk/gp11/tests/unit-test-gp11-attributes.c (original)
+++ trunk/gp11/tests/unit-test-gp11-attributes.c Sun Aug 3 17:03:01 2008
@@ -158,17 +158,15 @@
{
GP11Attribute *attr;
CK_DATE ck_date;
- GDate *date, *date2;
+ GDate date, date2;
- date = g_date_new_dmy(05, 06, 1800);
+ g_date_set_dmy(&date, 05, 06, 1800);
memcpy (ck_date.year, "1800", 4);
memcpy (ck_date.month, "06", 2);
memcpy (ck_date.day, "05", 2);
- attr = gp11_attribute_new_date (ATTR_TYPE, date);
- date2 = gp11_attribute_get_date (attr);
- g_assert (g_date_compare (date, date2) == 0);
- g_date_free (date);
- g_date_free (date2);
+ attr = gp11_attribute_new_date (ATTR_TYPE, &date);
+ gp11_attribute_get_date (attr, &date2);
+ g_assert (g_date_compare (&date, &date2) == 0);
gp11_attribute_free (attr);
}
@@ -249,7 +247,7 @@
{
GP11Attribute *attr;
gchar *value;
- GDate *date, *check;
+ GDate date, *check;
g_assert (attrs != NULL);
g_assert (gp11_attributes_count (attrs) == 5);
@@ -271,9 +269,8 @@
attr = gp11_attributes_at (attrs, 3);
g_assert (attr->type == 303);
check = g_date_new_dmy (11, 12, 2008);
- date = gp11_attribute_get_date (attr);
- g_assert (g_date_compare (date, check) == 0);
- g_date_free (date);
+ gp11_attribute_get_date (attr, &date);
+ g_assert (g_date_compare (&date, check) == 0);
g_date_free (check);
attr = gp11_attributes_at (attrs, 4);
@@ -398,7 +395,7 @@
DEFINE_TEST(find_attributes)
{
GP11Attribute *attr;
- GDate *check, *date = g_date_new_dmy (13, 12, 2008);
+ GDate check, *date = g_date_new_dmy (13, 12, 2008);
gboolean bvalue, ret;
gulong uvalue;
gchar *svalue;
@@ -432,9 +429,8 @@
ret = gp11_attributes_find_date (attrs, 303, &check);
g_assert (ret == TRUE);
- g_assert (check != NULL);
- g_assert (g_date_compare (date, check) == 0);
- g_date_free (check);
+ g_assert (g_date_compare (date, &check) == 0);
gp11_attributes_unref (attrs);
+ g_date_free (date);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]