summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/util/asn1.c10
-rw-r--r--lib/util/asn1.h1
-rw-r--r--source3/lib/tldap.c7
3 files changed, 11 insertions, 7 deletions
diff --git a/lib/util/asn1.c b/lib/util/asn1.c
index 08c4060fd1..184aeec909 100644
--- a/lib/util/asn1.c
+++ b/lib/util/asn1.c
@@ -780,6 +780,16 @@ bool asn1_blob(const struct asn1_data *asn1, DATA_BLOB *blob)
}
/*
+ Fill in an asn1 struct without making a copy
+*/
+void asn1_load_nocopy(struct asn1_data *data, uint8_t *buf, size_t len)
+{
+ ZERO_STRUCTP(data);
+ data->data = buf;
+ data->length = len;
+}
+
+/*
check if a ASN.1 blob is a full tag
*/
NTSTATUS asn1_full_tag(DATA_BLOB blob, uint8_t tag, size_t *packet_size)
diff --git a/lib/util/asn1.h b/lib/util/asn1.h
index b46494b2ea..b147cccdee 100644
--- a/lib/util/asn1.h
+++ b/lib/util/asn1.h
@@ -94,6 +94,7 @@ 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);
+void asn1_load_nocopy(struct asn1_data *data, uint8_t *buf, size_t len);
NTSTATUS asn1_full_tag(DATA_BLOB blob, uint8_t tag, size_t *packet_size);
#endif /* _ASN_1_H */
diff --git a/source3/lib/tldap.c b/source3/lib/tldap.c
index 4d2cd86f75..2033b4fa59 100644
--- a/source3/lib/tldap.c
+++ b/source3/lib/tldap.c
@@ -318,13 +318,6 @@ static ssize_t read_ldap_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
return talloc_get_size(*pbuf);
}
-static void asn1_load_nocopy(struct asn1_data *data, uint8_t *buf, size_t len)
-{
- ZERO_STRUCTP(data);
- data->data = buf;
- data->length = len;
-}
-
struct tldap_msg_state {
struct tldap_context *ld;
struct tevent_context *ev;