GckAttributes

GckAttributes — A set of PKCS11 attributes.

Synopsis

                    GckAttributes;
#define             GCK_TYPE_ATTRIBUTES
GckAttributes *       gck_attributes_new                (void);
GckAttributes *       gck_attributes_new_empty          (gulong attr_type,
                                                         ...);
GckAttribute *        gck_attributes_at                 (GckAttributes *attrs,
                                                         guint index);
GckAttribute *        gck_attributes_add                (GckAttributes *attrs,
                                                         GckAttribute *attr);
GckAttribute *        gck_attributes_add_data           (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         gconstpointer value,
                                                         gsize length);
GckAttribute *        gck_attributes_add_invalid        (GckAttributes *attrs,
                                                         gulong attr_type);
GckAttribute *        gck_attributes_add_empty          (GckAttributes *attrs,
                                                         gulong attr_type);
GckAttribute *        gck_attributes_add_boolean        (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         gboolean value);
GckAttribute *        gck_attributes_add_string         (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         const gchar *value);
GckAttribute *        gck_attributes_add_date           (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         const GDate *value);
GckAttribute *        gck_attributes_add_ulong          (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         gulong value);
void                gck_attributes_add_all              (GckAttributes *attrs,
                                                         GckAttributes *from);
GckAttribute *        gck_attributes_find               (GckAttributes *attrs,
                                                         gulong attr_type);
gboolean            gck_attributes_find_boolean         (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         gboolean *value);
gboolean            gck_attributes_find_ulong           (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         gulong *value);
gboolean            gck_attributes_find_string          (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         gchar **value);
gboolean            gck_attributes_find_date            (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         GDate *value);
gulong              gck_attributes_count                (GckAttributes *attrs);
GckAttributes *       gck_attributes_ref                (GckAttributes *attrs);
void                gck_attributes_unref                (GckAttributes *attrs);
gboolean            gck_attributes_contains             (GckAttributes *attrs,
                                                         GckAttribute *match);
void                gck_attributes_dump                 (GckAttributes *attrs);
GType               gck_attributes_get_boxed_type       (void);
GckAttributes *       gck_attributes_new_full           (GckAllocator allocator);
gpointer            (*GckAllocator)                     (gpointer data,
                                                         gsize length);

Description

A set of GckAttribute structures. These attributes contain information about a PKCS11 object. Use gck_object_get() or gck_object_set() to set and retrieve attributes on an object.

Details

GckAttributes

typedef struct _GckAttributes GckAttributes;

A set of GckAttribute structures.


GCK_TYPE_ATTRIBUTES

#define             GCK_TYPE_ATTRIBUTES                     (gck_attributes_get_boxed_type ())

Boxed type for GckAttributes


gck_attributes_new ()

GckAttributes *       gck_attributes_new                (void);

Create a new GckAttributes array.

Returns :

The new attributes array. When done with the array release it with gck_attributes_unref().

gck_attributes_new_empty ()

GckAttributes *       gck_attributes_new_empty          (gulong attr_type,
                                                         ...);

Creates an GckAttributes array with empty attributes. The arguments should be values of attribute types, terminated with gck_INVALID.

attr_type :

The first attribute type to add as empty.

... :

The arguments should be values of attribute types, terminated with gck_INVALID.

Returns :

The new attributes array. When done with the array release it with gck_attributes_unref().

gck_attributes_at ()

GckAttribute *        gck_attributes_at                 (GckAttributes *attrs,
                                                         guint index);

Get attribute at the specified index in the attribute array.

Use gck_attributes_count() to determine how many attributes are in the array.

attrs :

The attributes array.

index :

The attribute index to retrieve.

Returns :

The specified attribute.

gck_attributes_add ()

GckAttribute *        gck_attributes_add                (GckAttributes *attrs,
                                                         GckAttribute *attr);

Add the specified attribute to the array.

The value stored in the attribute will be copied.

attrs :

The attributes array to add to

attr :

The attribute to add.

Returns :

The attribute that was added.

gck_attributes_add_data ()

GckAttribute *        gck_attributes_add_data           (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         gconstpointer value,
                                                         gsize length);

Add an attribute with the specified type and value to the array.

The value stored in the attribute will be copied.

attrs :

The attributes array to add to.

attr_type :

The type of attribute to add.

value :

The raw memory of the attribute value.

length :

The length of the attribute value.

Returns :

The attribute that was added.

gck_attributes_add_invalid ()

GckAttribute *        gck_attributes_add_invalid        (GckAttributes *attrs,
                                                         gulong attr_type);

Add an attribute with the specified type and an 'invalid' value to the array.

attrs :

The attributes array to add to.

attr_type :

The type of attribute to add.

Returns :

The attribute that was added.

gck_attributes_add_empty ()

GckAttribute *        gck_attributes_add_empty          (GckAttributes *attrs,
                                                         gulong attr_type);

Add an attribute with the specified type, with empty data.

attrs :

The attributes array to add.

attr_type :

The type of attribute to add.

Returns :

The attribute that was added.

gck_attributes_add_boolean ()

GckAttribute *        gck_attributes_add_boolean        (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         gboolean value);

Add an attribute with the specified type and value to the array.

The value will be stored as a CK_BBOOL PKCS#11 style attribute.

attrs :

The attributes array to add to.

attr_type :

The type of attribute to add.

value :

The boolean value to add.

Returns :

The attribute that was added.

gck_attributes_add_string ()

GckAttribute *        gck_attributes_add_string         (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         const gchar *value);

Add an attribute with the specified type and value to the array.

The value will be copied into the attribute.

attrs :

The attributes array to add to.

attr_type :

The type of attribute to add.

value :

The null terminated string value to add.

Returns :

The attribute that was added.

gck_attributes_add_date ()

GckAttribute *        gck_attributes_add_date           (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         const GDate *value);

Add an attribute with the specified type and value to the array.

The value will be stored as a CK_DATE PKCS#11 style attribute.

attrs :

The attributes array to add to.

attr_type :

The type of attribute to add.

value :

The GDate value to add.

Returns :

The attribute that was added.

gck_attributes_add_ulong ()

GckAttribute *        gck_attributes_add_ulong          (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         gulong value);

Add an attribute with the specified type and value to the array.

The value will be stored as a CK_ULONG PKCS#11 style attribute.

attrs :

The attributes array to add to.

attr_type :

The type of attribute to add.

value :

The gulong value to add.

Returns :

The attribute that was added.

gck_attributes_add_all ()

void                gck_attributes_add_all              (GckAttributes *attrs,
                                                         GckAttributes *from);

Add all attributes in from to attrs.

attrs :

A set of attributes

from :

Attributes to add

gck_attributes_find ()

GckAttribute *        gck_attributes_find               (GckAttributes *attrs,
                                                         gulong attr_type);

Find an attribute with the specified type in the array.

attrs :

The attributes array to search.

attr_type :

The type of attribute to find.

Returns :

The first attribute found with the specified type, or NULL.

gck_attributes_find_boolean ()

gboolean            gck_attributes_find_boolean         (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         gboolean *value);

Find an attribute with the specified type in the array.

The attribute (if found) must be of the right size to store a boolean value (ie: CK_BBOOL). If the attribute is marked invalid then it will be treated as not found.

attrs :

The attributes array to search.

attr_type :

The type of attribute to find.

value :

The resulting gboolean value.

Returns :

Whether a value was found or not.

gck_attributes_find_ulong ()

gboolean            gck_attributes_find_ulong           (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         gulong *value);

Find an attribute with the specified type in the array.

The attribute (if found) must be of the right size to store a unsigned long value (ie: CK_ULONG). If the attribute is marked invalid then it will be treated as not found.

attrs :

The attributes array to search.

attr_type :

The type of attribute to find.

value :

The resulting gulong value.

Returns :

Whether a value was found or not.

gck_attributes_find_string ()

gboolean            gck_attributes_find_string          (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         gchar **value);

Find an attribute with the specified type in the array.

If the attribute is marked invalid then it will be treated as not found. The resulting string will be null-terminated, and must be freed by the caller using g_free().

attrs :

The attributes array to search.

attr_type :

The type of attribute to find.

value :

The resulting string value.

Returns :

Whether a value was found or not.

gck_attributes_find_date ()

gboolean            gck_attributes_find_date            (GckAttributes *attrs,
                                                         gulong attr_type,
                                                         GDate *value);

Find an attribute with the specified type in the array.

The attribute (if found) must be of the right size to store a date value (ie: CK_DATE). If the attribute is marked invalid then it will be treated as not found.

attrs :

The attributes array to search.

attr_type :

The type of attribute to find.

value :

The resulting GDate value.

Returns :

Whether a value was found or not.

gck_attributes_count ()

gulong              gck_attributes_count                (GckAttributes *attrs);

Get the number of attributes in this attribute array.

attrs :

The attributes array to count.

Returns :

The number of contained attributes.

gck_attributes_ref ()

GckAttributes *       gck_attributes_ref                (GckAttributes *attrs);

Reference this attributes array.

attrs :

An attribute array

Returns :

The attributes.

gck_attributes_unref ()

void                gck_attributes_unref                (GckAttributes *attrs);

Unreference this attribute array.

When all outstanding references are NULL, the array will be freed.

attrs :

An attribute array

gck_attributes_contains ()

gboolean            gck_attributes_contains             (GckAttributes *attrs,
                                                         GckAttribute *match);

Check whether the attributes contain a certain attribute.

attrs :

The attributes to check

match :

The attribute to find

Returns :

TRUE if the attributes contain the attribute.

gck_attributes_dump ()

void                gck_attributes_dump                 (GckAttributes *attrs);

Dump the attributes using g_printerr().

attrs :

The attributes

gck_attributes_get_boxed_type ()

GType               gck_attributes_get_boxed_type       (void);

Get the boxed type representing a GckAttributes array.

Returns :

The boxed type.

gck_attributes_new_full ()

GckAttributes *       gck_attributes_new_full           (GckAllocator allocator);

Create a new GckAttributes array.

allocator :

Memory allocator for attribute data, or NULL for default.

Returns :

The new attributes array. When done with the array release it with gck_attributes_unref().

GckAllocator ()

gpointer            (*GckAllocator)                     (gpointer data,
                                                         gsize length);

An allocator used to allocate data for the attributes in this GckAttributes set.

This is a function that acts like g_realloc. Specifically it frees when length is set to zero, it allocates when data is set to NULL, and it reallocates when both are valid.

data :

Memory to allocate or deallocate.

length :

New length of memory.

Returns :

The allocated memory, or NULL when freeing.