From ecf8cebf322717d6aea3f9f05ec9d210ffbb4aa6 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Fri, 19 Jun 2009 17:39:13 +0200 Subject: Move asn1_blob() to lib/util/asn1.c --- lib/util/asn1.c | 16 ++++++++++++++++ lib/util/asn1.h | 1 + 2 files changed, 17 insertions(+) (limited to 'lib') diff --git a/lib/util/asn1.c b/lib/util/asn1.c index aadaf8643a..08c4060fd1 100644 --- a/lib/util/asn1.c +++ b/lib/util/asn1.c @@ -763,6 +763,22 @@ bool asn1_write_enumerated(struct asn1_data *data, uint8_t v) return !data->has_error; } +/* + Get us the data just written without copying +*/ +bool asn1_blob(const struct asn1_data *asn1, DATA_BLOB *blob) +{ + if (asn1->has_error) { + return false; + } + if (asn1->nesting != NULL) { + return false; + } + blob->data = asn1->data; + blob->length = asn1->length; + return true; +} + /* check if a ASN.1 blob is a full tag */ diff --git a/lib/util/asn1.h b/lib/util/asn1.h index 0f41ae33e5..b46494b2ea 100644 --- a/lib/util/asn1.h +++ b/lib/util/asn1.h @@ -93,6 +93,7 @@ bool asn1_read_Integer(struct asn1_data *data, int *i); bool asn1_read_enumerated(struct asn1_data *data, int *v); bool asn1_check_enumerated(struct asn1_data *data, int v); bool asn1_write_enumerated(struct asn1_data *data, uint8_t v); +bool asn1_blob(const struct asn1_data *asn1, DATA_BLOB *blob); NTSTATUS asn1_full_tag(DATA_BLOB blob, uint8_t tag, size_t *packet_size); #endif /* _ASN_1_H */ -- cgit