summaryrefslogtreecommitdiff
path: root/src/ber-help.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ber-help.h')
-rw-r--r--src/ber-help.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/ber-help.h b/src/ber-help.h
index 286347d..8223a90 100644
--- a/src/ber-help.h
+++ b/src/ber-help.h
@@ -64,4 +64,64 @@ size_t _ksba_ber_count_tl (unsigned long tag,
unsigned long length);
+static inline void
+parse_skip (unsigned char const **buf, size_t *len, struct tag_info *ti)
+{
+ if (ti->length)
+ {
+ assert (ti->length <= *len);
+ *len -= ti->length;
+ *buf += ti->length;
+ }
+}
+
+gpg_error_t _ksba_parse_sequence (unsigned char const **buf, size_t *len,
+ struct tag_info *ti);
+#define parse_sequence(buf,len,ti) \
+ _ksba_parse_sequence ((buf),(len),(ti))
+
+gpg_error_t _ksba_parse_context_tag (unsigned char const **buf, size_t *len,
+ struct tag_info *ti, int tag);
+#define parse_context_tag(buf,len,ti,tag) \
+ _ksba_parse_context_tag ((buf),(len),(ti),(tag))
+
+gpg_error_t _ksba_parse_enumerated (unsigned char const **buf, size_t *len,
+ struct tag_info *ti, size_t maxlen);
+#define parse_enumerated(buf,len,ti,maxlen) \
+ _ksba_parse_enumerated ((buf),(len),(ti),(maxlen))
+
+gpg_error_t _ksba_parse_integer (unsigned char const **buf, size_t *len,
+ struct tag_info *ti);
+#define parse_integer(buf,len,ti) \
+ _ksba_parse_integer ((buf),(len),(ti))
+
+gpg_error_t _ksba_parse_octet_string (unsigned char const **buf, size_t *len,
+ struct tag_info *ti);
+#define parse_octet_string(buf,len,ti) \
+ _ksba_parse_octet_string ((buf),(len),(ti))
+
+gpg_error_t _ksba_parse_optional_boolean (unsigned char const **buf,
+ size_t *len, int *r_bool);
+#define parse_optional_boolean(buf,len,r_bool) \
+ _ksba_parse_optional_boolean ((buf),(len),(r_bool))
+
+gpg_error_t _ksba_parse_optional_null (unsigned char const **buf, size_t *len,
+ int *r_seen);
+#define parse_optional_null(buf,len,r_seen) \
+ _ksba_parse_optional_null ((buf),(len),(r_seen))
+
+gpg_error_t _ksba_parse_object_id_into_str (unsigned char const **buf,
+ size_t *len, char **oid);
+#define parse_object_id_into_str(buf,len,r_oid) \
+ _ksba_parse_object_id_into_str ((buf),(len),(r_oid))
+
+
+gpg_error_t _ksba_parse_asntime_into_isotime (unsigned char const **buf,
+ size_t *len,
+ ksba_isotime_t isotime);
+#define parse_asntime_into_isotime(buf,len,isotime) \
+ _ksba_parse_asntime_into_isotime ((buf),(len),(isotime))
+
+
+
#endif /*BER_HELP_H*/