diff options
Diffstat (limited to 'common/attrs.h')
-rw-r--r-- | common/attrs.h | 59 |
1 files changed, 46 insertions, 13 deletions
diff --git a/common/attrs.h b/common/attrs.h index 12a2798..870f0d1 100644 --- a/common/attrs.h +++ b/common/attrs.h @@ -36,17 +36,18 @@ #ifndef P11_ATTRS_H_ #define P11_ATTRS_H_ +#include "compat.h" #include "pkcs11.h" #define CKA_INVALID ((CK_ULONG)-1) -CK_ATTRIBUTE * p11_attrs_dup (CK_ATTRIBUTE *attrs); +CK_ATTRIBUTE * p11_attrs_dup (const CK_ATTRIBUTE *attrs); CK_ATTRIBUTE * p11_attrs_build (CK_ATTRIBUTE *attrs, ...); CK_ATTRIBUTE * p11_attrs_buildn (CK_ATTRIBUTE *attrs, - CK_ATTRIBUTE *add, + const CK_ATTRIBUTE *add, CK_ULONG count); CK_ATTRIBUTE * p11_attrs_take (CK_ATTRIBUTE *attrs, @@ -54,9 +55,9 @@ CK_ATTRIBUTE * p11_attrs_take (CK_ATTRIBUTE *attrs, CK_VOID_PTR value, CK_ULONG length); -CK_BBOOL p11_attrs_is_empty (CK_ATTRIBUTE *attrs); +bool p11_attrs_is_empty (const CK_ATTRIBUTE *attrs); -CK_ULONG p11_attrs_count (CK_ATTRIBUTE *attrs); +CK_ULONG p11_attrs_count (const CK_ATTRIBUTE *attrs); void p11_attrs_free (void *attrs); @@ -67,20 +68,52 @@ CK_ATTRIBUTE * p11_attrs_findn (CK_ATTRIBUTE *attrs, CK_ULONG count, CK_ATTRIBUTE_TYPE type); -CK_BBOOL p11_attrs_remove (CK_ATTRIBUTE *attrs, +bool p11_attrs_find_bool (CK_ATTRIBUTE *attrs, + CK_ATTRIBUTE_TYPE type, + CK_BBOOL *value); + +bool p11_attrs_findn_bool (CK_ATTRIBUTE *attrs, + CK_ULONG count, + CK_ATTRIBUTE_TYPE type, + CK_BBOOL *value); + +bool p11_attrs_find_ulong (CK_ATTRIBUTE *attrs, + CK_ATTRIBUTE_TYPE type, + CK_ULONG *value); + +bool p11_attrs_findn_ulong (CK_ATTRIBUTE *attrs, + CK_ULONG count, + CK_ATTRIBUTE_TYPE type, + CK_ULONG *value); + +CK_ATTRIBUTE * p11_attrs_find_valid (CK_ATTRIBUTE *attrs, CK_ATTRIBUTE_TYPE type); -CK_BBOOL p11_attrs_match (CK_ATTRIBUTE *attrs, - CK_ATTRIBUTE *match); +CK_ATTRIBUTE * p11_attrs_findn_valid (CK_ATTRIBUTE *attrs, + CK_ULONG count, + CK_ATTRIBUTE_TYPE type); + +bool p11_attrs_remove (CK_ATTRIBUTE *attrs, + CK_ATTRIBUTE_TYPE type); -CK_BBOOL p11_attrs_matchn (CK_ATTRIBUTE *attrs, - CK_ATTRIBUTE *match, +bool p11_attrs_match (const CK_ATTRIBUTE *attrs, + const CK_ATTRIBUTE *match); + +bool p11_attrs_matchn (const CK_ATTRIBUTE *attrs, + const CK_ATTRIBUTE *match, CK_ULONG count); -CK_BBOOL p11_attr_equal (CK_ATTRIBUTE *one, - CK_ATTRIBUTE *two); +char * p11_attrs_to_string (const CK_ATTRIBUTE *attrs); + +char * p11_attr_to_string (const CK_ATTRIBUTE *attr); + +bool p11_attr_equal (const void *one, + const void *two); + +unsigned int p11_attr_hash (const void *data); -CK_BBOOL p11_attr_match_boolean (CK_ATTRIBUTE *attr, - CK_BBOOL value); +bool p11_attr_match_value (const CK_ATTRIBUTE *attr, + const void *value, + ssize_t length); #endif /* P11_ATTRS_H_ */ |