aboutsummaryrefslogtreecommitdiff
path: root/src/lib/krb5/asn.1/asn1_get.h
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>1999-11-01 21:08:55 +0000
committerTom Yu <tlyu@mit.edu>1999-11-01 21:08:55 +0000
commit18ba61167c89f65a6d861acf69460cff18b5a2cb (patch)
tree92f31455fba7979eafe0d424f97da1897da2e73f /src/lib/krb5/asn.1/asn1_get.h
parent4343e0d35106ae3179e4e7a5daca548648a4cd89 (diff)
downloadkrb5-18ba61167c89f65a6d861acf69460cff18b5a2cb.zip
krb5-18ba61167c89f65a6d861acf69460cff18b5a2cb.tar.gz
krb5-18ba61167c89f65a6d861acf69460cff18b5a2cb.tar.bz2
* krb5_decode.c (begin_structure): Update to deal with indefinite
encodings better; also call asn1_get_sequence(). * asn1_k_decode.c (sequence_of): Update to deal with indefinite encodings better. (begin_structure): Update to deal with indefinite encodings better; also call asn1_get_sequence(). * asn1_get.h: Update prototypes for asn1_get_tag_indef(), asn1_get_tag(), asn1_get_sequence(), asn1_get_length(). * asn1_get.c (asn1_get_tag_indef): New function; get tag info, lengths, etc. as well as flag indicating whether the length is indefinite. (asn1_get_tag): Modify to just call asn1_get_tag_indef(). (asn1_get_sequence): Call asn1_get_tag_indef() in order to determine whether encoding is indefinite length. (asn1_get_length): Add "indef" arg to indicate whether an encoding has an indefinite length. * asn1buf.h: Update asn1buf_imbed() prototype. * asn1buf.c (asn1buf_imbed): Add "indef" arg so that we don't treat a definite zero-length encoding as an indefinite encoding. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@11890 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/asn.1/asn1_get.h')
-rw-r--r--src/lib/krb5/asn.1/asn1_get.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/lib/krb5/asn.1/asn1_get.h b/src/lib/krb5/asn.1/asn1_get.h
index f21c117..2f5edf1 100644
--- a/src/lib/krb5/asn.1/asn1_get.h
+++ b/src/lib/krb5/asn.1/asn1_get.h
@@ -33,6 +33,12 @@
#include "krbasn1.h"
#include "asn1buf.h"
+asn1_error_code asn1_get_tag_indef
+ PROTOTYPE((asn1buf *buf,
+ asn1_class *class,
+ asn1_construction *construction,
+ asn1_tagnum *tagnum,
+ int *retlen, int *indef));
asn1_error_code asn1_get_tag
PROTOTYPE((asn1buf *buf,
asn1_class *class,
@@ -49,7 +55,7 @@ asn1_error_code asn1_get_tag
Returns ASN1_OVERRUN if *buf is exhausted during the parse. */
asn1_error_code asn1_get_sequence
- PROTOTYPE((asn1buf *buf, int *retlen));
+ PROTOTYPE((asn1buf *buf, int *retlen, int *indef));
/* requires *buf is allocated
effects Decodes a tag from *buf and returns ASN1_BAD_ID if it
doesn't have a sequence ID. If retlen != NULL, the
@@ -71,7 +77,7 @@ asn1_error_code asn1_get_id
Returns ASN1_OVERRUN if *buf is exhausted. */
asn1_error_code asn1_get_length
- PROTOTYPE((asn1buf *buf, int *retlen));
+ PROTOTYPE((asn1buf *buf, int *retlen, int *indef));
/* requires *buf is allocated
effects Decodes the group of length octets at *buf's
current position. If retlen != NULL, the