summaryrefslogtreecommitdiff
path: root/trust/parser.c
diff options
context:
space:
mode:
authorStef Walter <stefw@gnome.org>2013-05-21 21:46:27 +0200
committerStef Walter <stefw@gnome.org>2013-05-27 10:46:11 +0200
commit96771f49dc945800ae28c77ff407753cbb995c7f (patch)
tree595d2bc1779c55b12912c32bd05920bff8d41e36 /trust/parser.c
parentdaf63f2cf66669b3555f2f15498a0aa2db234b2f (diff)
downloadp11-kit-96771f49dc945800ae28c77ff407753cbb995c7f.tar.gz
persist: Support for writing out p11-kit persist files
Diffstat (limited to 'trust/parser.c')
-rw-r--r--trust/parser.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/trust/parser.c b/trust/parser.c
index 7690d6a..21b693b 100644
--- a/trust/parser.c
+++ b/trust/parser.c
@@ -675,10 +675,14 @@ parse_p11_kit_persist (p11_parser *parser,
const unsigned char *data,
size_t length)
{
+ CK_BBOOL modifiablev = CK_FALSE;
+ CK_ATTRIBUTE *attrs;
p11_array *objects;
bool ret;
int i;
+ CK_ATTRIBUTE modifiable = { CKA_MODIFIABLE, &modifiablev, sizeof (modifiablev) };
+
if (!p11_persist_magic (data, length))
return P11_PARSE_UNRECOGNIZED;
@@ -692,8 +696,10 @@ parse_p11_kit_persist (p11_parser *parser,
ret = p11_persist_read (parser->persist, parser->basename, data, length, objects);
if (ret) {
- for (i = 0; i < objects->num; i++)
- sink_object (parser, objects->elem[i]);
+ for (i = 0; i < objects->num; i++) {
+ attrs = p11_attrs_build (objects->elem[i], &modifiable, NULL);
+ sink_object (parser, attrs);
+ }
}
p11_array_free (objects);