]> granicus.if.org Git - p11-kit/commitdiff
trust: Refactor how we load builtin objects
authorStef Walter <stefw@gnome.org>
Fri, 8 Mar 2013 18:09:46 +0000 (19:09 +0100)
committerStef Walter <stefw@gnome.org>
Fri, 8 Mar 2013 20:38:54 +0000 (21:38 +0100)
trust/token.c

index 4e6f6e9530fccb720fa61a6c30aa33d27ed350b7..c9271caa0ba7aa73eb390de45293482476d49fce 100644 (file)
@@ -53,6 +53,8 @@
 #include <stdlib.h>
 #include <string.h>
 
+#define ELEMS(x) (sizeof (x) / sizeof (x[0]))
+
 struct _p11_token {
        p11_parser *parser;
        p11_dict *objects;
@@ -70,6 +72,8 @@ on_parser_object (CK_ATTRIBUTE *attrs,
        CK_OBJECT_HANDLE *key;
        p11_token *token = user_data;
 
+       return_if_fail (attrs != NULL);
+
        object = p11_module_next_id ();
 
        key = memdup (&object, sizeof (object));
@@ -211,21 +215,19 @@ static int
 load_builtin_objects (p11_token *token)
 {
        CK_OBJECT_CLASS builtin = CKO_NETSCAPE_BUILTIN_ROOT_LIST;
-       const char *vlabel = "Trust Anchor Roots";
+       const char *trust_anchor_roots = "Trust Anchor Roots";
        CK_BBOOL vtrue = CK_TRUE;
        CK_BBOOL vfalse = CK_FALSE;
-       CK_ATTRIBUTE *attrs;
-
-       CK_ATTRIBUTE klass = { CKA_CLASS, &builtin, sizeof (builtin) };
-       CK_ATTRIBUTE tok = { CKA_TOKEN, &vtrue, sizeof (vtrue) };
-       CK_ATTRIBUTE priv = { CKA_PRIVATE, &vfalse, sizeof (vfalse) };
-       CK_ATTRIBUTE modifiable = { CKA_MODIFIABLE, &vfalse, sizeof (vfalse) };
-       CK_ATTRIBUTE label = { CKA_LABEL, (void *)vlabel, strlen (vlabel) };
 
-       attrs = p11_attrs_build (NULL, &klass, &tok, &priv, &modifiable, &label, NULL);
-       return_val_if_fail (attrs != NULL, 0);
+       CK_ATTRIBUTE builtin_root_list[] = {
+               { CKA_CLASS, &builtin, sizeof (builtin) },
+               { CKA_TOKEN, &vtrue, sizeof (vtrue) },
+               { CKA_PRIVATE, &vfalse, sizeof (vfalse) },
+               { CKA_MODIFIABLE, &vfalse, sizeof (vfalse) },
+               { CKA_LABEL, (void *)trust_anchor_roots, strlen (trust_anchor_roots) },
+       };
 
-       on_parser_object (attrs, token);
+       on_parser_object (p11_attrs_buildn (NULL, builtin_root_list, ELEMS (builtin_root_list)), token);
        return 1;
 }