aboutsummaryrefslogtreecommitdiff
path: root/src/lib/krb5/asn.1/asn1_make.h
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>1994-06-29 05:35:50 +0000
committerTom Yu <tlyu@mit.edu>1994-06-29 05:35:50 +0000
commitba0c614172f11219c430b17cd14602d9f7e629e3 (patch)
tree61c2ac5235dbd41debd8aaf0d6eb63be20e1a506 /src/lib/krb5/asn.1/asn1_make.h
parent0ab5822efa69c6b2236b5f052775b2ce86c7c30e (diff)
downloadkrb5-ba0c614172f11219c430b17cd14602d9f7e629e3.zip
krb5-ba0c614172f11219c430b17cd14602d9f7e629e3.tar.gz
krb5-ba0c614172f11219c430b17cd14602d9f7e629e3.tar.bz2
folding in Harry's changes
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@3924 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/asn.1/asn1_make.h')
-rw-r--r--src/lib/krb5/asn.1/asn1_make.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/src/lib/krb5/asn.1/asn1_make.h b/src/lib/krb5/asn.1/asn1_make.h
new file mode 100644
index 0000000..527e93c
--- /dev/null
+++ b/src/lib/krb5/asn.1/asn1_make.h
@@ -0,0 +1,109 @@
+#ifndef __ASN1_MAKE_H__
+#define __ASN1_MAKE_H__
+
+#include <krb5/krb5.h>
+#include "krbasn1.h"
+#include "asn1buf.h"
+
+/*
+ Overview
+
+ Each of these procedures constructs a subpart of an ASN.1
+ primitive in a coding buffer.
+
+ Operations
+
+ asn1_make_etag
+ asn1_make_sequence
+ asn1_make_set
+ asn1_make_tag
+ asn1_make_string
+*/
+
+asn1_error_code asn1_make_etag
+ PROTOTYPE((asn1buf *buf,
+ const asn1_class class,
+ const asn1_tagnum tagnum,
+ const int in_len,
+ int *retlen));
+/* requires *buf is allocated, in_len is the length of an ASN.1 encoding
+ which has just been inserted in *buf
+ modifies *buf, *retlen
+ effects Inserts an explicit tag with class = class, id# = tag
+ length = in_len into *buf.
+ Returns the length of this encoding in *retlen.
+ Returns ENOMEM if memory runs out. */
+
+asn1_error_code asn1_make_tag
+ PROTOTYPE((asn1buf *buf, const asn1_class class,
+ const asn1_construction construction,
+ const asn1_tagnum tagnum,
+ const int in_len,
+ int *retlen));
+/* requires *buf is allocated, in_len is the length of an ASN.1 encoding
+ which has just been inserted in *buf
+ modifies *buf, *retlen
+ effects Inserts the encoding of a tag with class = class,
+ primitive/constructed staus = construction,
+ id# = tag and length = in_len into *buf.
+ Returns the length of this encoding in *retlen.
+ Returns ENOMEM if memory runs out.
+ Returns ASN1_OVERFLOW if tagnum exceeds the limits of
+ the implementation. */
+
+asn1_error_code asn1_make_sequence
+ PROTOTYPE((asn1buf *buf, const int seq_len, int *len));
+/* requires *buf is allocated, seq_len is the length of a series of
+ sequence components which have just been inserted in *buf
+ modifies *buf, *retlen
+ effects Inserts the sequence header for a sequence of length seq_len
+ in *buf. Returns the length of this encoding in *retlen.
+ Returns ENOMEM if memory runs out. */
+
+asn1_error_code asn1_make_set
+ PROTOTYPE((asn1buf *buf, const int set_len, int *retlen));
+/* requires *buf is allocated, seq_len is the length of a series of
+ sequence components which have just been inserted in *buf
+ modifies *buf, *retlen
+ effects Inserts the set header for a set of length set_len in *buf.
+ Returns the length of this encoding in *retlen.
+ Returns ENOMEM if memory runs out. */
+
+asn1_error_code asn1_make_string
+ PROTOTYPE((asn1buf *buf,
+ const int len, const char *string,
+ int *retlen));
+/* requires *buf is allocated, len is the length of *string
+ effects Inserts the encoding of *string
+ PROTOTYPE((a series of octets) in *buf.
+ Returns the length of this encoding in *retlen.
+ Returns ENOMEM if memory runs out. */
+
+
+/****************************************************************/
+/* Private procedures */
+
+/* "helper" procedure for asn1_make_tag */
+asn1_error_code asn1_make_length
+ PROTOTYPE((asn1buf *buf, const int in_len, int *retlen));
+/* requires *buf is allocated, in_len is the length of an ASN.1 encoding
+ which has just been inserted in *buf
+ modifies *buf, *retlen
+ effects inserts length octet
+ PROTOTYPE((s) for in_len into *buf */
+
+/* "helper" procedure for asn1_make_tag */
+asn1_error_code asn1_make_id
+ PROTOTYPE((asn1buf *buf,
+ const asn1_class class,
+ const asn1_construction construction,
+ const asn1_tagnum tagnum,
+ int *retlen));
+/* requires *buf is allocated, class and tagnum are appropriate for
+ the ASN.1 encoding which has just been inserted in *buf
+ modifies *buf, *retlen
+ effects Inserts id octet
+ PROTOTYPE((s) of class class and tag number tagnum
+ into *buf */
+
+#endif