Author: Pekka Riikonen <priikone@silcnet.org>
- Copyright (C) 2003 - 2005 Pekka Riikonen
+ Copyright (C) 2003 - 2007 Pekka Riikonen
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
/* ASN.1 context */
struct SilcAsn1Object {
- va_list ap; /* List of ASN.1 types given as argument */
+ SilcStack orig_stack; /* Stack given to silc_asn1_alloc */
SilcStack stack1; /* Stack for encoder */
SilcStack stack2; /* Internal stack for encoding/decoding */
+ va_list ap; /* List of ASN.1 types given as argument */
unsigned int accumul : 1; /* Accumulate memory from stack for result */
+ unsigned int switched : 1; /* Set when stack2 is set to stack1 */
};
/* The maximum depth for recursion in encoder and decoder. */
#define SILC_ASN1_TAG_CHOICE 0x7003 /* SILC_ASN1_CHOICE given */
#define SILC_ASN1_TAG_SEQUENCE_OF 0x7004 /* SILC_ASN1_SEQUENCE_OF given */
#define SILC_ASN1_TAG_ANY_PRIMITIVE 0x7005 /* Pre-encoded primitive data */
+#define SILC_ASN1_TAG_SHORT_INTEGER 0x7006 /* Short integer */
/* Helper macros for adding the arguments to encoder and decoder. */
ret_type = (ret_type & 0xffff) & ~0x8000; \
}
-#ifdef SILC_DIST_INPLACE
/* Internal functions */
+#if defined(SILC_DEBUG)
/* Returns string representation of a tag */
const char *silc_asn1_tag_name(SilcAsn1Tag tag);
+#endif /* SILC_DEBUG */
+#ifdef SILC_DIST_INPLACE
/* Dumps the ASN.1 data block into standard output (stdout). */
SilcBool silc_asn1_dump(SilcAsn1 asn1, SilcBuffer src);
#endif /* SILC_DIST_INPLACE */