diff options
author | Stef Walter <stef@thewalter.net> | 2013-07-04 15:37:34 +0200 |
---|---|---|
committer | Stef Walter <stef@thewalter.net> | 2013-07-04 15:42:16 +0200 |
commit | ec7c2ff2011d774217c1e35d664072d0487853c7 (patch) | |
tree | c2ff76fc08c9b237f101d4119451ef04229c7788 /trust/parser.c | |
parent | a2165fe35e336fd807af053a21a396b020f90a23 (diff) |
trust: Add p11_asn1_read() and p11_asn1_free() functions
Some helpers for commonly used ASN.1 related stuff.
Diffstat (limited to 'trust/parser.c')
-rw-r--r-- | trust/parser.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/trust/parser.c b/trust/parser.c index 1ae3dc1..77e41bc 100644 --- a/trust/parser.c +++ b/trust/parser.c @@ -247,8 +247,7 @@ load_seq_of_oid_str (node_asn *node, p11_dict *oids; char field[128]; char *oid; - int len; - int ret; + size_t len; int i; oids = p11_dict_new (p11_dict_str_hash, p11_dict_str_equal, free, NULL); @@ -257,19 +256,10 @@ load_seq_of_oid_str (node_asn *node, if (snprintf (field, sizeof (field), "%s.?%u", seqof, i) < 0) return_val_if_reached (NULL); - len = 0; - ret = asn1_read_value (node, field, NULL, &len); - if (ret == ASN1_ELEMENT_NOT_FOUND) + oid = p11_asn1_read (node, field, &len); + if (oid == NULL) break; - return_val_if_fail (ret == ASN1_MEM_ERROR, NULL); - - oid = malloc (len + 1); - return_val_if_fail (oid != NULL, NULL); - - ret = asn1_read_value (node, field, oid, &len); - return_val_if_fail (ret == ASN1_SUCCESS, NULL); - if (!p11_dict_set (oids, oid, oid)) return_val_if_reached (NULL); } |