diff options
Diffstat (limited to 'trust/module.c')
-rw-r--r-- | trust/module.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/trust/module.c b/trust/module.c index e6fb7a9..e8b7256 100644 --- a/trust/module.c +++ b/trust/module.c @@ -198,10 +198,11 @@ create_tokens_inlock (p11_array *tokens, struct { const char *prefix; const char *label; + int flags; } labels[] = { - { "~/", "User Trust" }, - { DATA_DIR, "Default Trust" }, - { SYSCONFDIR, "System Trust" }, + { "~/", "User Trust", P11_TOKEN_FLAG_NONE }, + { P11_DEFAULT_TRUST_PREFIX, "Default Trust", P11_TOKEN_FLAG_WRITE_PROTECTED }, + { P11_SYSTEM_TRUST_PREFIX, "System Trust", P11_TOKEN_FLAG_NONE }, { NULL }, }; @@ -210,6 +211,7 @@ create_tokens_inlock (p11_array *tokens, CK_SLOT_ID slot; const char *path; const char *label; + int flags; char *alloc; char *remaining; char *base; @@ -236,12 +238,14 @@ create_tokens_inlock (p11_array *tokens, slot = BASE_SLOT_ID + tokens->num; label = NULL; + flags = P11_TOKEN_FLAG_NONE; base = NULL; /* Claim the various labels based on prefix */ for (i = 0; label == NULL && labels[i].prefix != NULL; i++) { if (strncmp (path, labels[i].prefix, strlen (labels[i].prefix)) == 0) { label = labels[i].label; + flags = labels[i].flags; labels[i].label = NULL; } } @@ -252,7 +256,7 @@ create_tokens_inlock (p11_array *tokens, return_val_if_fail (base != NULL, false); } - token = p11_token_new (slot, path, label); + token = p11_token_new (slot, path, label, flags); return_val_if_fail (token != NULL, false); if (!p11_array_push (tokens, token)) |