summaryrefslogtreecommitdiff
path: root/common/asn1.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/asn1.h')
-rw-r--r--common/asn1.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/common/asn1.h b/common/asn1.h
index 76a84ed..c79e8f6 100644
--- a/common/asn1.h
+++ b/common/asn1.h
@@ -39,6 +39,8 @@
#ifndef P11_ASN1_H_
#define P11_ASN1_H_
+typedef struct _p11_asn1_cache p11_asn1_cache;
+
p11_dict * p11_asn1_defs_load (void);
node_asn * p11_asn1_decode (p11_dict *asn1_defs,
@@ -62,4 +64,23 @@ time_t p11_asn1_parse_general (const char *time_str,
ssize_t p11_asn1_tlv_length (const unsigned char *data,
size_t length);
+p11_asn1_cache * p11_asn1_cache_new (void);
+
+p11_dict * p11_asn1_cache_defs (p11_asn1_cache *cache);
+
+node_asn * p11_asn1_cache_get (p11_asn1_cache *cache,
+ const char *struct_name,
+ const unsigned char *der,
+ size_t der_len);
+
+void p11_asn1_cache_take (p11_asn1_cache *cache,
+ node_asn *node,
+ const char *struct_name,
+ const unsigned char *der,
+ size_t der_len);
+
+void p11_asn1_cache_flush (p11_asn1_cache *cache);
+
+void p11_asn1_cache_free (p11_asn1_cache *cache);
+
#endif /* P11_ASN1_H_ */