mirror of https://gerrit.osmocom.org/asn1c
asn1_* renamed into asn_*
git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@446 59561ff5-6e30-0410-9f3c-9617f08c8826
This commit is contained in:
parent
eeb5ff93f8
commit
ef6355bd66
|
@ -7,7 +7,7 @@
|
|||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
|
||||
asn1_TYPE_descriptor_t asn1_DEF_ANY = {
|
||||
asn_TYPE_descriptor_t asn_DEF_ANY = {
|
||||
"ANY",
|
||||
OCTET_STRING_free,
|
||||
OCTET_STRING_print,
|
||||
|
@ -24,7 +24,7 @@ asn1_TYPE_descriptor_t asn1_DEF_ANY = {
|
|||
|
||||
|
||||
asn_enc_rval_t
|
||||
ANY_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
ANY_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
|
||||
|
@ -48,7 +48,7 @@ struct _callback_arg {
|
|||
static int ANY__consume_bytes(const void *buffer, size_t size, void *key);
|
||||
|
||||
int
|
||||
ANY_fromType(ANY_t *st, asn1_TYPE_descriptor_t *td, void *sptr) {
|
||||
ANY_fromType(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) {
|
||||
struct _callback_arg arg;
|
||||
asn_enc_rval_t erval;
|
||||
|
||||
|
@ -81,7 +81,7 @@ ANY_fromType(ANY_t *st, asn1_TYPE_descriptor_t *td, void *sptr) {
|
|||
}
|
||||
|
||||
ANY_t *
|
||||
ANY_new_fromType(asn1_TYPE_descriptor_t *td, void *sptr) {
|
||||
ANY_new_fromType(asn_TYPE_descriptor_t *td, void *sptr) {
|
||||
ANY_t tmp;
|
||||
ANY_t *st;
|
||||
|
||||
|
@ -105,7 +105,7 @@ ANY_new_fromType(asn1_TYPE_descriptor_t *td, void *sptr) {
|
|||
}
|
||||
|
||||
int
|
||||
ANY_to_type(ANY_t *st, asn1_TYPE_descriptor_t *td, void **struct_ptr) {
|
||||
ANY_to_type(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) {
|
||||
ber_dec_rval_t rval;
|
||||
void *newst = 0;
|
||||
|
||||
|
@ -120,7 +120,7 @@ ANY_to_type(ANY_t *st, asn1_TYPE_descriptor_t *td, void **struct_ptr) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
rval = ber_decode(td, (void **)&newst, st->buf, st->size);
|
||||
rval = ber_decode(0, td, (void **)&newst, st->buf, st->size);
|
||||
if(rval.code == RC_OK) {
|
||||
*struct_ptr = newst;
|
||||
return 0;
|
||||
|
|
|
@ -11,10 +11,10 @@ typedef struct ANY {
|
|||
uint8_t *buf; /* BER-encoded ANY contents */
|
||||
int size; /* Size of the above buffer */
|
||||
|
||||
ber_dec_ctx_t _ber_dec_ctx; /* Parsing across buffer boundaries */
|
||||
asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */
|
||||
} ANY_t;
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_ANY;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_ANY;
|
||||
|
||||
asn_struct_free_f ANY_free;
|
||||
asn_struct_print_f ANY_print;
|
||||
|
@ -27,11 +27,11 @@ xer_type_encoder_f ANY_encode_xer;
|
|||
******************************/
|
||||
|
||||
/* Convert another ASN.1 type into the ANY. This implies DER encoding. */
|
||||
int ANY_fromType(ANY_t *, asn1_TYPE_descriptor_t *td, void *struct_ptr);
|
||||
ANY_t *ANY_new_fromType(asn1_TYPE_descriptor_t *td, void *struct_ptr);
|
||||
int ANY_fromType(ANY_t *, asn_TYPE_descriptor_t *td, void *struct_ptr);
|
||||
ANY_t *ANY_new_fromType(asn_TYPE_descriptor_t *td, void *struct_ptr);
|
||||
|
||||
/* Convert the contents of the ANY type into the specified type. */
|
||||
int ANY_to_type(ANY_t *, asn1_TYPE_descriptor_t *td, void **struct_ptr);
|
||||
int ANY_to_type(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr);
|
||||
|
||||
#define ANY_fromBuf(s, buf, size) OCTET_STRING_fromBuf((s), (buf), (size))
|
||||
#define ANY_new_fromBuf(buf, size) OCTET_STRING_new_fromBuf((buf), (size))
|
||||
|
|
|
@ -9,10 +9,10 @@
|
|||
/*
|
||||
* BIT STRING basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_BIT_STRING_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_BIT_STRING_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_BIT_STRING = {
|
||||
asn_TYPE_descriptor_t asn_DEF_BIT_STRING = {
|
||||
"BIT STRING",
|
||||
OCTET_STRING_free, /* Implemented in terms of OCTET STRING */
|
||||
BIT_STRING_print,
|
||||
|
@ -22,12 +22,12 @@ asn1_TYPE_descriptor_t asn1_DEF_BIT_STRING = {
|
|||
0, /* Not implemented yet */
|
||||
BIT_STRING_encode_xer,
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_BIT_STRING_tags,
|
||||
sizeof(asn1_DEF_BIT_STRING_tags)
|
||||
/ sizeof(asn1_DEF_BIT_STRING_tags[0]),
|
||||
asn1_DEF_BIT_STRING_tags, /* Same as above */
|
||||
sizeof(asn1_DEF_BIT_STRING_tags)
|
||||
/ sizeof(asn1_DEF_BIT_STRING_tags[0]),
|
||||
asn_DEF_BIT_STRING_tags,
|
||||
sizeof(asn_DEF_BIT_STRING_tags)
|
||||
/ sizeof(asn_DEF_BIT_STRING_tags[0]),
|
||||
asn_DEF_BIT_STRING_tags, /* Same as above */
|
||||
sizeof(asn_DEF_BIT_STRING_tags)
|
||||
/ sizeof(asn_DEF_BIT_STRING_tags[0]),
|
||||
0, 0, /* No members */
|
||||
(void *)1 /* Special indicator that this is a BIT STRING */
|
||||
};
|
||||
|
@ -36,7 +36,7 @@ asn1_TYPE_descriptor_t asn1_DEF_BIT_STRING = {
|
|||
* BIT STRING generic constraint.
|
||||
*/
|
||||
int
|
||||
BIT_STRING_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
||||
BIT_STRING_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
asn_app_consume_bytes_f *app_errlog, void *app_key) {
|
||||
const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
|
||||
|
||||
|
@ -70,7 +70,7 @@ static char *_bit_pattern[16] = {
|
|||
};
|
||||
|
||||
asn_enc_rval_t
|
||||
BIT_STRING_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
BIT_STRING_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn_enc_rval_t er;
|
||||
|
@ -118,7 +118,7 @@ BIT_STRING_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
int mbit = st->buf[0]; /* bits to skip from the right */
|
||||
int i;
|
||||
for(i = 7; i >= mbit; i--)
|
||||
*p++ = (v & (1 << i)) ? '1' : '0';
|
||||
*p++ = (v & (1 << i)) ? 0x31 : 0x30;
|
||||
er.encoded += p - scratch;
|
||||
_ASN_CALLBACK(scratch, p - scratch);
|
||||
}
|
||||
|
@ -133,7 +133,7 @@ BIT_STRING_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
* BIT STRING specific contents printer.
|
||||
*/
|
||||
int
|
||||
BIT_STRING_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
BIT_STRING_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
static const char *h2c = "0123456789ABCDEF";
|
||||
char scratch[64];
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
typedef OCTET_STRING_t BIT_STRING_t; /* Implemented via OCTET STRING */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_BIT_STRING;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING;
|
||||
|
||||
asn_struct_print_f BIT_STRING_print; /* Human-readable output */
|
||||
asn_constr_check_f BIT_STRING_constraint;
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
/*
|
||||
* BMPString basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_BMPString_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_BMPString_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (30 << 2)), /* [UNIVERSAL 30] IMPLICIT ...*/
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_BMPString = {
|
||||
asn_TYPE_descriptor_t asn_DEF_BMPString = {
|
||||
"BMPString",
|
||||
OCTET_STRING_free, /* Implemented in terms of OCTET STRING */
|
||||
BMPString_print,
|
||||
|
@ -22,12 +22,12 @@ asn1_TYPE_descriptor_t asn1_DEF_BMPString = {
|
|||
0, /* Not implemented yet */
|
||||
BMPString_encode_xer, /* Conver to UTF8 */
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_BMPString_tags,
|
||||
sizeof(asn1_DEF_BMPString_tags)
|
||||
/ sizeof(asn1_DEF_BMPString_tags[0]) - 1,
|
||||
asn1_DEF_BMPString_tags,
|
||||
sizeof(asn1_DEF_BMPString_tags)
|
||||
/ sizeof(asn1_DEF_BMPString_tags[0]),
|
||||
asn_DEF_BMPString_tags,
|
||||
sizeof(asn_DEF_BMPString_tags)
|
||||
/ sizeof(asn_DEF_BMPString_tags[0]) - 1,
|
||||
asn_DEF_BMPString_tags,
|
||||
sizeof(asn_DEF_BMPString_tags)
|
||||
/ sizeof(asn_DEF_BMPString_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
@ -74,7 +74,7 @@ BMPString__dump(const BMPString_t *st,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
BMPString_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
BMPString_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const BMPString_t *st = (const BMPString_t *)sptr;
|
||||
|
@ -93,7 +93,7 @@ BMPString_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
}
|
||||
|
||||
int
|
||||
BMPString_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
BMPString_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const BMPString_t *st = (const BMPString_t *)sptr;
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
typedef OCTET_STRING_t BMPString_t; /* Implemented via OCTET STRING */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_BMPString;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_BMPString;
|
||||
|
||||
asn_struct_print_f BMPString_print; /* Human-readable output */
|
||||
xer_type_encoder_f BMPString_encode_xer;
|
||||
|
|
|
@ -8,10 +8,10 @@
|
|||
/*
|
||||
* BOOLEAN basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_BOOLEAN_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_BOOLEAN_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (1 << 2))
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_BOOLEAN = {
|
||||
asn_TYPE_descriptor_t asn_DEF_BOOLEAN = {
|
||||
"BOOLEAN",
|
||||
BOOLEAN_free,
|
||||
BOOLEAN_print,
|
||||
|
@ -21,10 +21,10 @@ asn1_TYPE_descriptor_t asn1_DEF_BOOLEAN = {
|
|||
0, /* Not implemented yet */
|
||||
BOOLEAN_encode_xer,
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_BOOLEAN_tags,
|
||||
sizeof(asn1_DEF_BOOLEAN_tags) / sizeof(asn1_DEF_BOOLEAN_tags[0]),
|
||||
asn1_DEF_BOOLEAN_tags, /* Same as above */
|
||||
sizeof(asn1_DEF_BOOLEAN_tags) / sizeof(asn1_DEF_BOOLEAN_tags[0]),
|
||||
asn_DEF_BOOLEAN_tags,
|
||||
sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]),
|
||||
asn_DEF_BOOLEAN_tags, /* Same as above */
|
||||
sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
@ -33,7 +33,8 @@ asn1_TYPE_descriptor_t asn1_DEF_BOOLEAN = {
|
|||
* Decode BOOLEAN type.
|
||||
*/
|
||||
ber_dec_rval_t
|
||||
BOOLEAN_decode_ber(asn1_TYPE_descriptor_t *td,
|
||||
BOOLEAN_decode_ber(asn_codec_ctx_t *opt_codec_ctx,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void **bool_value, void *buf_ptr, size_t size,
|
||||
int tag_mode) {
|
||||
BOOLEAN_t *st = (BOOLEAN_t *)*bool_value;
|
||||
|
@ -56,7 +57,8 @@ BOOLEAN_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
/*
|
||||
* Check tags.
|
||||
*/
|
||||
rval = ber_check_tags(td, 0, buf_ptr, size, tag_mode, 0, &length, 0);
|
||||
rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size,
|
||||
tag_mode, 0, &length, 0);
|
||||
if(rval.code != RC_OK)
|
||||
return rval;
|
||||
|
||||
|
@ -94,7 +96,7 @@ BOOLEAN_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
BOOLEAN_encode_der(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
BOOLEAN_encode_der(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int tag_mode, ber_tlv_tag_t tag,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn_enc_rval_t erval;
|
||||
|
@ -126,7 +128,7 @@ BOOLEAN_encode_der(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
BOOLEAN_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
BOOLEAN_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const BOOLEAN_t *st = (const BOOLEAN_t *)sptr;
|
||||
|
@ -149,7 +151,7 @@ BOOLEAN_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
}
|
||||
|
||||
int
|
||||
BOOLEAN_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
BOOLEAN_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const BOOLEAN_t *st = (const BOOLEAN_t *)sptr;
|
||||
const char *buf;
|
||||
|
@ -175,7 +177,7 @@ BOOLEAN_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
|||
}
|
||||
|
||||
void
|
||||
BOOLEAN_free(asn1_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
||||
BOOLEAN_free(asn_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
||||
if(td && ptr && !contents_only) {
|
||||
FREEMEM(ptr);
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
*/
|
||||
typedef int BOOLEAN_t;
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_BOOLEAN;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_BOOLEAN;
|
||||
|
||||
asn_struct_free_f BOOLEAN_free;
|
||||
asn_struct_print_f BOOLEAN_print;
|
||||
|
|
|
@ -9,10 +9,10 @@
|
|||
/*
|
||||
* ENUMERATED basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_ENUMERATED_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_ENUMERATED_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_ENUMERATED = {
|
||||
asn_TYPE_descriptor_t asn_DEF_ENUMERATED = {
|
||||
"ENUMERATED",
|
||||
ASN__PRIMITIVE_TYPE_free,
|
||||
INTEGER_print, /* Implemented in terms of INTEGER */
|
||||
|
@ -22,10 +22,10 @@ asn1_TYPE_descriptor_t asn1_DEF_ENUMERATED = {
|
|||
0, /* Not implemented yet */
|
||||
INTEGER_encode_xer, /* Implemented in terms of INTEGER */
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_ENUMERATED_tags,
|
||||
sizeof(asn1_DEF_ENUMERATED_tags) / sizeof(asn1_DEF_ENUMERATED_tags[0]),
|
||||
asn1_DEF_ENUMERATED_tags, /* Same as above */
|
||||
sizeof(asn1_DEF_ENUMERATED_tags) / sizeof(asn1_DEF_ENUMERATED_tags[0]),
|
||||
asn_DEF_ENUMERATED_tags,
|
||||
sizeof(asn_DEF_ENUMERATED_tags) / sizeof(asn_DEF_ENUMERATED_tags[0]),
|
||||
asn_DEF_ENUMERATED_tags, /* Same as above */
|
||||
sizeof(asn_DEF_ENUMERATED_tags) / sizeof(asn_DEF_ENUMERATED_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
|
||||
typedef INTEGER_t ENUMERATED_t; /* Implemented via INTEGER */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_ENUMERATED;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_ENUMERATED;
|
||||
|
||||
#endif /* _ENUMERATED_H_ */
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
/*
|
||||
* GeneralString basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_GeneralString_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_GeneralString_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (27 << 2)), /* [UNIVERSAL 27] IMPLICIT ...*/
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_GeneralString = {
|
||||
asn_TYPE_descriptor_t asn_DEF_GeneralString = {
|
||||
"GeneralString",
|
||||
OCTET_STRING_free,
|
||||
OCTET_STRING_print, /* non-ascii string */
|
||||
|
@ -22,12 +22,12 @@ asn1_TYPE_descriptor_t asn1_DEF_GeneralString = {
|
|||
0, /* Not implemented yet */
|
||||
OCTET_STRING_encode_xer, /* Implemented in terms of OCTET STRING */
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_GeneralString_tags,
|
||||
sizeof(asn1_DEF_GeneralString_tags)
|
||||
/ sizeof(asn1_DEF_GeneralString_tags[0]) - 1,
|
||||
asn1_DEF_GeneralString_tags,
|
||||
sizeof(asn1_DEF_GeneralString_tags)
|
||||
/ sizeof(asn1_DEF_GeneralString_tags[0]),
|
||||
asn_DEF_GeneralString_tags,
|
||||
sizeof(asn_DEF_GeneralString_tags)
|
||||
/ sizeof(asn_DEF_GeneralString_tags[0]) - 1,
|
||||
asn_DEF_GeneralString_tags,
|
||||
sizeof(asn_DEF_GeneralString_tags)
|
||||
/ sizeof(asn_DEF_GeneralString_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
|
||||
typedef OCTET_STRING_t GeneralString_t; /* Implemented via OCTET STRING */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_GeneralString;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_GeneralString;
|
||||
|
||||
#endif /* _GeneralString_H_ */
|
||||
|
|
|
@ -109,12 +109,12 @@ static time_t timegm(struct tm *tm) {
|
|||
/*
|
||||
* GeneralizedTime basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_GeneralizedTime_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_GeneralizedTime_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (24 << 2)), /* [UNIVERSAL 24] IMPLICIT ...*/
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), /* [UNIVERSAL 26] IMPLICIT ...*/
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_GeneralizedTime = {
|
||||
asn_TYPE_descriptor_t asn_DEF_GeneralizedTime = {
|
||||
"GeneralizedTime",
|
||||
OCTET_STRING_free,
|
||||
GeneralizedTime_print,
|
||||
|
@ -124,12 +124,12 @@ asn1_TYPE_descriptor_t asn1_DEF_GeneralizedTime = {
|
|||
0, /* Not implemented yet */
|
||||
GeneralizedTime_encode_xer,
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_GeneralizedTime_tags,
|
||||
sizeof(asn1_DEF_GeneralizedTime_tags)
|
||||
/ sizeof(asn1_DEF_GeneralizedTime_tags[0]) - 2,
|
||||
asn1_DEF_GeneralizedTime_tags,
|
||||
sizeof(asn1_DEF_GeneralizedTime_tags)
|
||||
/ sizeof(asn1_DEF_GeneralizedTime_tags[0]),
|
||||
asn_DEF_GeneralizedTime_tags,
|
||||
sizeof(asn_DEF_GeneralizedTime_tags)
|
||||
/ sizeof(asn_DEF_GeneralizedTime_tags[0]) - 2,
|
||||
asn_DEF_GeneralizedTime_tags,
|
||||
sizeof(asn_DEF_GeneralizedTime_tags)
|
||||
/ sizeof(asn_DEF_GeneralizedTime_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
@ -140,7 +140,7 @@ asn1_TYPE_descriptor_t asn1_DEF_GeneralizedTime = {
|
|||
* Check that the time looks like the time.
|
||||
*/
|
||||
int
|
||||
GeneralizedTime_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
||||
GeneralizedTime_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
asn_app_consume_bytes_f *app_errlog, void *app_key) {
|
||||
const GeneralizedTime_t *st = (const GeneralizedTime_t *)sptr;
|
||||
time_t tloc;
|
||||
|
@ -158,14 +158,14 @@ GeneralizedTime_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
GeneralizedTime_encode_der(asn1_TYPE_descriptor_t *td, void *ptr,
|
||||
GeneralizedTime_encode_der(asn_TYPE_descriptor_t *td, void *ptr,
|
||||
int tag_mode, ber_tlv_tag_t tag,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
GeneralizedTime_t *st = (GeneralizedTime_t *)ptr;
|
||||
asn_enc_rval_t erval;
|
||||
|
||||
/* If not canonical DER, re-encode into canonical DER. */
|
||||
if(st->size && st->buf[st->size-1] != 'Z') {
|
||||
if(st->size && st->buf[st->size-1] != 0x5a) {
|
||||
struct tm tm;
|
||||
time_t tloc;
|
||||
|
||||
|
@ -199,7 +199,7 @@ GeneralizedTime_encode_der(asn1_TYPE_descriptor_t *td, void *ptr,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
GeneralizedTime_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
GeneralizedTime_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
OCTET_STRING_t st;
|
||||
|
@ -229,7 +229,7 @@ GeneralizedTime_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
}
|
||||
|
||||
int
|
||||
GeneralizedTime_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
GeneralizedTime_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const GeneralizedTime_t *st = (const GeneralizedTime_t *)sptr;
|
||||
|
||||
|
@ -445,7 +445,7 @@ local_finish:
|
|||
tloc = timegm(&tm_s);
|
||||
} else {
|
||||
/*
|
||||
* Without an offset (or 'Z'),
|
||||
* Without an offset (or "Z"),
|
||||
* we can only guess that it is a local zone.
|
||||
* Interpret it in this fashion.
|
||||
*/
|
||||
|
@ -523,7 +523,7 @@ asn_time2GT(GeneralizedTime_t *opt_gt, const struct tm *tm, int force_gmt) {
|
|||
|
||||
p = buf + size;
|
||||
if(force_gmt) {
|
||||
*p++ = 0x5a; /* 'Z' */
|
||||
*p++ = 0x5a; /* "Z" */
|
||||
*p++ = 0;
|
||||
size++;
|
||||
} else {
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
typedef OCTET_STRING_t GeneralizedTime_t; /* Implemented via OCTET STRING */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_GeneralizedTime;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_GeneralizedTime;
|
||||
|
||||
asn_struct_print_f GeneralizedTime_print;
|
||||
asn_constr_check_f GeneralizedTime_constraint;
|
||||
|
@ -36,7 +36,7 @@ time_t asn_GT2time(const GeneralizedTime_t *, struct tm *_optional_tm4fill,
|
|||
* Convert a struct tm into GeneralizedTime.
|
||||
* If __opt_gt is not given, this function will try to allocate one.
|
||||
* If force_gmt is given, the resulting GeneralizedTime will be forced
|
||||
* into a GMT time zone (encoding ends with 'Z').
|
||||
* into a GMT time zone (encoding ends with a "Z").
|
||||
* On error, this function returns 0 and sets errno.
|
||||
*/
|
||||
GeneralizedTime_t *asn_time2GT(GeneralizedTime_t *__opt_gt, const struct tm *,
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
/*
|
||||
* GraphicString basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_GraphicString_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_GraphicString_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (25 << 2)), /* [UNIVERSAL 25] IMPLICIT ...*/
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_GraphicString = {
|
||||
asn_TYPE_descriptor_t asn_DEF_GraphicString = {
|
||||
"GraphicString",
|
||||
OCTET_STRING_free,
|
||||
OCTET_STRING_print, /* non-ascii string */
|
||||
|
@ -22,12 +22,12 @@ asn1_TYPE_descriptor_t asn1_DEF_GraphicString = {
|
|||
0, /* Not implemented yet */
|
||||
OCTET_STRING_encode_xer, /* Implemented in terms of OCTET STRING */
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_GraphicString_tags,
|
||||
sizeof(asn1_DEF_GraphicString_tags)
|
||||
/ sizeof(asn1_DEF_GraphicString_tags[0]) - 1,
|
||||
asn1_DEF_GraphicString_tags,
|
||||
sizeof(asn1_DEF_GraphicString_tags)
|
||||
/ sizeof(asn1_DEF_GraphicString_tags[0]),
|
||||
asn_DEF_GraphicString_tags,
|
||||
sizeof(asn_DEF_GraphicString_tags)
|
||||
/ sizeof(asn_DEF_GraphicString_tags[0]) - 1,
|
||||
asn_DEF_GraphicString_tags,
|
||||
sizeof(asn_DEF_GraphicString_tags)
|
||||
/ sizeof(asn_DEF_GraphicString_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
|
||||
typedef OCTET_STRING_t GraphicString_t; /* Implemented via OCTET STRING */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_GraphicString;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_GraphicString;
|
||||
|
||||
#endif /* _GraphicString_H_ */
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
/*
|
||||
* IA5String basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_IA5String_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_IA5String_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (22 << 2)), /* [UNIVERSAL 22] IMPLICIT ...*/
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_IA5String = {
|
||||
asn_TYPE_descriptor_t asn_DEF_IA5String = {
|
||||
"IA5String",
|
||||
OCTET_STRING_free,
|
||||
OCTET_STRING_print_ascii, /* ASCII subset */
|
||||
|
@ -22,18 +22,18 @@ asn1_TYPE_descriptor_t asn1_DEF_IA5String = {
|
|||
0, /* Not implemented yet */
|
||||
OCTET_STRING_encode_xer_ascii,/* Implemented in terms of OCTET STRING */
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_IA5String_tags,
|
||||
sizeof(asn1_DEF_IA5String_tags)
|
||||
/ sizeof(asn1_DEF_IA5String_tags[0]) - 1,
|
||||
asn1_DEF_IA5String_tags,
|
||||
sizeof(asn1_DEF_IA5String_tags)
|
||||
/ sizeof(asn1_DEF_IA5String_tags[0]),
|
||||
asn_DEF_IA5String_tags,
|
||||
sizeof(asn_DEF_IA5String_tags)
|
||||
/ sizeof(asn_DEF_IA5String_tags[0]) - 1,
|
||||
asn_DEF_IA5String_tags,
|
||||
sizeof(asn_DEF_IA5String_tags)
|
||||
/ sizeof(asn_DEF_IA5String_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
||||
int
|
||||
IA5String_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
||||
IA5String_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
asn_app_consume_bytes_f *app_errlog, void *app_key) {
|
||||
const IA5String_t *st = (const IA5String_t *)sptr;
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ typedef OCTET_STRING_t IA5String_t; /* Implemented via OCTET STRING */
|
|||
/*
|
||||
* IA5String ASN.1 type definition.
|
||||
*/
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_IA5String;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_IA5String;
|
||||
|
||||
asn_constr_check_f IA5String_constraint;
|
||||
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
/*
|
||||
* INTEGER basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_INTEGER_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_INTEGER_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_INTEGER = {
|
||||
asn_TYPE_descriptor_t asn_DEF_INTEGER = {
|
||||
"INTEGER",
|
||||
ASN__PRIMITIVE_TYPE_free,
|
||||
INTEGER_print,
|
||||
|
@ -24,10 +24,10 @@ asn1_TYPE_descriptor_t asn1_DEF_INTEGER = {
|
|||
0, /* Not implemented yet */
|
||||
INTEGER_encode_xer,
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_INTEGER_tags,
|
||||
sizeof(asn1_DEF_INTEGER_tags) / sizeof(asn1_DEF_INTEGER_tags[0]),
|
||||
asn1_DEF_INTEGER_tags, /* Same as above */
|
||||
sizeof(asn1_DEF_INTEGER_tags) / sizeof(asn1_DEF_INTEGER_tags[0]),
|
||||
asn_DEF_INTEGER_tags,
|
||||
sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]),
|
||||
asn_DEF_INTEGER_tags, /* Same as above */
|
||||
sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
@ -36,7 +36,7 @@ asn1_TYPE_descriptor_t asn1_DEF_INTEGER = {
|
|||
* Encode INTEGER type using DER.
|
||||
*/
|
||||
asn_enc_rval_t
|
||||
INTEGER_encode_der(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
INTEGER_encode_der(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int tag_mode, ber_tlv_tag_t tag,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
INTEGER_t *st = (INTEGER_t *)sptr;
|
||||
|
@ -146,10 +146,10 @@ INTEGER__dump(const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key) {
|
|||
}
|
||||
*p++ = h2c[*buf >> 4];
|
||||
*p++ = h2c[*buf & 0x0F];
|
||||
*p++ = ':';
|
||||
*p++ = 0x3a; /* ":" */
|
||||
}
|
||||
if(p != scratch)
|
||||
p--; /* Remove the last ':' */
|
||||
p--; /* Remove the last ":" */
|
||||
|
||||
wrote += p - scratch;
|
||||
return (cb(scratch, p - scratch, app_key) < 0) ? -1 : wrote;
|
||||
|
@ -159,7 +159,7 @@ INTEGER__dump(const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key) {
|
|||
* INTEGER specific human-readable output.
|
||||
*/
|
||||
int
|
||||
INTEGER_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
INTEGER_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const INTEGER_t *st = (const INTEGER_t *)sptr;
|
||||
ssize_t ret;
|
||||
|
@ -176,7 +176,7 @@ INTEGER_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
INTEGER_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
INTEGER_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const INTEGER_t *st = (const INTEGER_t *)sptr;
|
||||
|
@ -195,7 +195,7 @@ INTEGER_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
}
|
||||
|
||||
int
|
||||
asn1_INTEGER2long(const INTEGER_t *iptr, long *lptr) {
|
||||
asn_INTEGER2long(const INTEGER_t *iptr, long *lptr) {
|
||||
uint8_t *b, *end;
|
||||
size_t size;
|
||||
long l;
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
typedef ASN__PRIMITIVE_TYPE_t INTEGER_t;
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_INTEGER;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_INTEGER;
|
||||
|
||||
asn_struct_print_f INTEGER_print;
|
||||
ber_type_decoder_f INTEGER_decode_ber;
|
||||
|
@ -26,6 +26,6 @@ xer_type_encoder_f INTEGER_encode_xer;
|
|||
* -1/EINVAL: Mandatory argument missing
|
||||
* -1/ERANGE: Value encoded is out of range for long representation
|
||||
*/
|
||||
int asn1_INTEGER2long(const INTEGER_t *i, long *l);
|
||||
int asn_INTEGER2long(const INTEGER_t *i, long *l);
|
||||
|
||||
#endif /* _INTEGER_H_ */
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
/*
|
||||
* ISO646String basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_ISO646String_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_ISO646String_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), /* [UNIVERSAL 26] IMPLICIT ...*/
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_ISO646String = {
|
||||
asn_TYPE_descriptor_t asn_DEF_ISO646String = {
|
||||
"ISO646String",
|
||||
OCTET_STRING_free,
|
||||
OCTET_STRING_print_ascii, /* ASCII subset */
|
||||
|
@ -22,12 +22,12 @@ asn1_TYPE_descriptor_t asn1_DEF_ISO646String = {
|
|||
0, /* Not implemented yet */
|
||||
OCTET_STRING_encode_xer_ascii,/* Implemented in terms of OCTET STRING */
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_ISO646String_tags,
|
||||
sizeof(asn1_DEF_ISO646String_tags)
|
||||
/ sizeof(asn1_DEF_ISO646String_tags[0]) - 1,
|
||||
asn1_DEF_ISO646String_tags,
|
||||
sizeof(asn1_DEF_ISO646String_tags)
|
||||
/ sizeof(asn1_DEF_ISO646String_tags[0]),
|
||||
asn_DEF_ISO646String_tags,
|
||||
sizeof(asn_DEF_ISO646String_tags)
|
||||
/ sizeof(asn_DEF_ISO646String_tags[0]) - 1,
|
||||
asn_DEF_ISO646String_tags,
|
||||
sizeof(asn_DEF_ISO646String_tags)
|
||||
/ sizeof(asn_DEF_ISO646String_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
|
|
@ -10,6 +10,6 @@
|
|||
|
||||
typedef VisibleString_t ISO646String_t; /* Implemented using VisibleString */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_ISO646String;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_ISO646String;
|
||||
|
||||
#endif /* _ISO646String_H_ */
|
||||
|
|
|
@ -9,10 +9,10 @@
|
|||
/*
|
||||
* NULL basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_NULL_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_NULL_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (5 << 2))
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_NULL = {
|
||||
asn_TYPE_descriptor_t asn_DEF_NULL = {
|
||||
"NULL",
|
||||
BOOLEAN_free,
|
||||
NULL_print,
|
||||
|
@ -22,16 +22,16 @@ asn1_TYPE_descriptor_t asn1_DEF_NULL = {
|
|||
0, /* Not implemented yet */
|
||||
NULL_encode_xer, /* Special handling of DER encoding */
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_NULL_tags,
|
||||
sizeof(asn1_DEF_NULL_tags) / sizeof(asn1_DEF_NULL_tags[0]),
|
||||
asn1_DEF_NULL_tags, /* Same as above */
|
||||
sizeof(asn1_DEF_NULL_tags) / sizeof(asn1_DEF_NULL_tags[0]),
|
||||
asn_DEF_NULL_tags,
|
||||
sizeof(asn_DEF_NULL_tags) / sizeof(asn_DEF_NULL_tags[0]),
|
||||
asn_DEF_NULL_tags, /* Same as above */
|
||||
sizeof(asn_DEF_NULL_tags) / sizeof(asn_DEF_NULL_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
||||
asn_enc_rval_t
|
||||
NULL_encode_der(asn1_TYPE_descriptor_t *td, void *ptr,
|
||||
NULL_encode_der(asn_TYPE_descriptor_t *td, void *ptr,
|
||||
int tag_mode, ber_tlv_tag_t tag,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn_enc_rval_t erval;
|
||||
|
@ -46,7 +46,7 @@ NULL_encode_der(asn1_TYPE_descriptor_t *td, void *ptr,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
NULL_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
NULL_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn_enc_rval_t er;
|
||||
|
@ -65,7 +65,7 @@ NULL_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
}
|
||||
|
||||
int
|
||||
NULL_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
NULL_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
|
||||
(void)td; /* Unused argument */
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
*/
|
||||
typedef int NULL_t;
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_NULL;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_NULL;
|
||||
|
||||
asn_struct_print_f NULL_print;
|
||||
der_type_encoder_f NULL_encode_der;
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
/*
|
||||
* NativeEnumerated basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_NativeEnumerated_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_NativeEnumerated_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_NativeEnumerated = {
|
||||
asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = {
|
||||
"ENUMERATED", /* The ASN.1 type is still ENUMERATED */
|
||||
NativeInteger_free,
|
||||
NativeInteger_print,
|
||||
|
@ -28,10 +28,10 @@ asn1_TYPE_descriptor_t asn1_DEF_NativeEnumerated = {
|
|||
0, /* Not implemented yet */
|
||||
NativeInteger_encode_xer,
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_NativeEnumerated_tags,
|
||||
sizeof(asn1_DEF_NativeEnumerated_tags) / sizeof(asn1_DEF_NativeEnumerated_tags[0]),
|
||||
asn1_DEF_NativeEnumerated_tags, /* Same as above */
|
||||
sizeof(asn1_DEF_NativeEnumerated_tags) / sizeof(asn1_DEF_NativeEnumerated_tags[0]),
|
||||
asn_DEF_NativeEnumerated_tags,
|
||||
sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]),
|
||||
asn_DEF_NativeEnumerated_tags, /* Same as above */
|
||||
sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
|
|
@ -14,6 +14,6 @@
|
|||
|
||||
#include <NativeInteger.h>
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_NativeEnumerated;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_NativeEnumerated;
|
||||
|
||||
#endif /* _NativeEnumerated_H_ */
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
/*
|
||||
* NativeInteger basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_NativeInteger_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_NativeInteger_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_NativeInteger = {
|
||||
asn_TYPE_descriptor_t asn_DEF_NativeInteger = {
|
||||
"INTEGER", /* The ASN.1 type is still INTEGER */
|
||||
NativeInteger_free,
|
||||
NativeInteger_print,
|
||||
|
@ -30,10 +30,10 @@ asn1_TYPE_descriptor_t asn1_DEF_NativeInteger = {
|
|||
0, /* Not implemented yet */
|
||||
NativeInteger_encode_xer,
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_NativeInteger_tags,
|
||||
sizeof(asn1_DEF_NativeInteger_tags) / sizeof(asn1_DEF_NativeInteger_tags[0]),
|
||||
asn1_DEF_NativeInteger_tags, /* Same as above */
|
||||
sizeof(asn1_DEF_NativeInteger_tags) / sizeof(asn1_DEF_NativeInteger_tags[0]),
|
||||
asn_DEF_NativeInteger_tags,
|
||||
sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]),
|
||||
asn_DEF_NativeInteger_tags, /* Same as above */
|
||||
sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
@ -42,7 +42,8 @@ asn1_TYPE_descriptor_t asn1_DEF_NativeInteger = {
|
|||
* Decode INTEGER type.
|
||||
*/
|
||||
ber_dec_rval_t
|
||||
NativeInteger_decode_ber(asn1_TYPE_descriptor_t *td,
|
||||
NativeInteger_decode_ber(asn_codec_ctx_t *opt_codec_ctx,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void **int_ptr, void *buf_ptr, size_t size, int tag_mode) {
|
||||
int *Int = (int *)*int_ptr;
|
||||
ber_dec_rval_t rval;
|
||||
|
@ -66,7 +67,8 @@ NativeInteger_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
/*
|
||||
* Check tags.
|
||||
*/
|
||||
rval = ber_check_tags(td, 0, buf_ptr, size, tag_mode, 0, &length, 0);
|
||||
rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size,
|
||||
tag_mode, 0, &length, 0);
|
||||
if(rval.code != RC_OK)
|
||||
return rval;
|
||||
|
||||
|
@ -94,7 +96,7 @@ NativeInteger_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
tmp.buf = (uint8_t *)buf_ptr;
|
||||
tmp.size = length;
|
||||
|
||||
if(asn1_INTEGER2long(&tmp, &l)) {
|
||||
if(asn_INTEGER2long(&tmp, &l)) {
|
||||
rval.code = RC_FAIL;
|
||||
rval.consumed = 0;
|
||||
return rval;
|
||||
|
@ -128,7 +130,7 @@ NativeInteger_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
* Encode the NativeInteger using the standard INTEGER type DER encoder.
|
||||
*/
|
||||
asn_enc_rval_t
|
||||
NativeInteger_encode_der(asn1_TYPE_descriptor_t *sd, void *ptr,
|
||||
NativeInteger_encode_der(asn_TYPE_descriptor_t *sd, void *ptr,
|
||||
int tag_mode, ber_tlv_tag_t tag,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
unsigned int Int = *(unsigned int *)ptr; /* Disable sign ext. */
|
||||
|
@ -162,7 +164,7 @@ NativeInteger_encode_der(asn1_TYPE_descriptor_t *sd, void *ptr,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
NativeInteger_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
NativeInteger_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
char scratch[32]; /* Enough for 64-bit int */
|
||||
|
@ -186,7 +188,7 @@ NativeInteger_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
* INTEGER specific human-readable output.
|
||||
*/
|
||||
int
|
||||
NativeInteger_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
NativeInteger_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const int *Int = (const int *)sptr;
|
||||
char scratch[32]; /* Enough for 64-bit int */
|
||||
|
@ -205,7 +207,7 @@ NativeInteger_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
|||
}
|
||||
|
||||
void
|
||||
NativeInteger_free(asn1_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
||||
NativeInteger_free(asn_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
||||
|
||||
if(!td || !ptr)
|
||||
return;
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
#include <asn_application.h>
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_NativeInteger;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_NativeInteger;
|
||||
|
||||
asn_struct_free_f NativeInteger_free;
|
||||
asn_struct_print_f NativeInteger_print;
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
/*
|
||||
* NativeReal basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_NativeReal_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_NativeReal_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_NativeReal = {
|
||||
asn_TYPE_descriptor_t asn_DEF_NativeReal = {
|
||||
"REAL", /* The ASN.1 type is still REAL */
|
||||
NativeReal_free,
|
||||
NativeReal_print,
|
||||
|
@ -30,10 +30,10 @@ asn1_TYPE_descriptor_t asn1_DEF_NativeReal = {
|
|||
0, /* Not implemented yet */
|
||||
NativeReal_encode_xer,
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_NativeReal_tags,
|
||||
sizeof(asn1_DEF_NativeReal_tags) / sizeof(asn1_DEF_NativeReal_tags[0]),
|
||||
asn1_DEF_NativeReal_tags, /* Same as above */
|
||||
sizeof(asn1_DEF_NativeReal_tags) / sizeof(asn1_DEF_NativeReal_tags[0]),
|
||||
asn_DEF_NativeReal_tags,
|
||||
sizeof(asn_DEF_NativeReal_tags) / sizeof(asn_DEF_NativeReal_tags[0]),
|
||||
asn_DEF_NativeReal_tags, /* Same as above */
|
||||
sizeof(asn_DEF_NativeReal_tags) / sizeof(asn_DEF_NativeReal_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
@ -42,7 +42,8 @@ asn1_TYPE_descriptor_t asn1_DEF_NativeReal = {
|
|||
* Decode REAL type.
|
||||
*/
|
||||
ber_dec_rval_t
|
||||
NativeReal_decode_ber(asn1_TYPE_descriptor_t *td,
|
||||
NativeReal_decode_ber(asn_codec_ctx_t *opt_codec_ctx,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void **dbl_ptr, void *buf_ptr, size_t size, int tag_mode) {
|
||||
double *Dbl = (double *)*dbl_ptr;
|
||||
ber_dec_rval_t rval;
|
||||
|
@ -66,7 +67,8 @@ NativeReal_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
/*
|
||||
* Check tags.
|
||||
*/
|
||||
rval = ber_check_tags(td, 0, buf_ptr, size, tag_mode, 0, &length, 0);
|
||||
rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size,
|
||||
tag_mode, 0, &length, 0);
|
||||
if(rval.code != RC_OK)
|
||||
return rval;
|
||||
|
||||
|
@ -94,7 +96,7 @@ NativeReal_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
tmp.buf = (uint8_t *)buf_ptr;
|
||||
tmp.size = length;
|
||||
|
||||
if(asn1_REAL2double(&tmp, &d)) {
|
||||
if(asn_REAL2double(&tmp, &d)) {
|
||||
rval.code = RC_FAIL;
|
||||
rval.consumed = 0;
|
||||
return rval;
|
||||
|
@ -116,14 +118,14 @@ NativeReal_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
* Encode the NativeReal using the standard REAL type DER encoder.
|
||||
*/
|
||||
asn_enc_rval_t
|
||||
NativeReal_encode_der(asn1_TYPE_descriptor_t *td, void *ptr,
|
||||
NativeReal_encode_der(asn_TYPE_descriptor_t *td, void *ptr,
|
||||
int tag_mode, ber_tlv_tag_t tag,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
double Dbl = *(const double *)ptr;
|
||||
asn_enc_rval_t erval;
|
||||
REAL_t tmp;
|
||||
|
||||
if(asn1_double2REAL(&tmp, Dbl)) {
|
||||
if(asn_double2REAL(&tmp, Dbl)) {
|
||||
erval.encoded = -1;
|
||||
erval.failed_type = td;
|
||||
erval.structure_ptr = ptr;
|
||||
|
@ -141,7 +143,7 @@ NativeReal_encode_der(asn1_TYPE_descriptor_t *td, void *ptr,
|
|||
|
||||
|
||||
asn_enc_rval_t
|
||||
NativeReal_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
NativeReal_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const double *Dbl = (const double *)sptr;
|
||||
|
@ -161,7 +163,7 @@ NativeReal_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
* REAL specific human-readable output.
|
||||
*/
|
||||
int
|
||||
NativeReal_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
NativeReal_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const double *Dbl = (const double *)sptr;
|
||||
|
||||
|
@ -174,7 +176,7 @@ NativeReal_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
|||
}
|
||||
|
||||
void
|
||||
NativeReal_free(asn1_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
||||
NativeReal_free(asn_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
||||
|
||||
if(!td || !ptr)
|
||||
return;
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
#include <asn_application.h>
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_NativeReal;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_NativeReal;
|
||||
|
||||
asn_struct_free_f NativeReal_free;
|
||||
asn_struct_print_f NativeReal_print;
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
/*
|
||||
* NumericString basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_NumericString_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_NumericString_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (18 << 2)), /* [UNIVERSAL 18] IMPLICIT ...*/
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_NumericString = {
|
||||
asn_TYPE_descriptor_t asn_DEF_NumericString = {
|
||||
"NumericString",
|
||||
OCTET_STRING_free,
|
||||
OCTET_STRING_print_ascii, /* ASCII subset */
|
||||
|
@ -22,18 +22,18 @@ asn1_TYPE_descriptor_t asn1_DEF_NumericString = {
|
|||
0, /* Not implemented yet */
|
||||
OCTET_STRING_encode_xer_ascii,/* Implemented in terms of OCTET STRING */
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_NumericString_tags,
|
||||
sizeof(asn1_DEF_NumericString_tags)
|
||||
/ sizeof(asn1_DEF_NumericString_tags[0]) - 1,
|
||||
asn1_DEF_NumericString_tags,
|
||||
sizeof(asn1_DEF_NumericString_tags)
|
||||
/ sizeof(asn1_DEF_NumericString_tags[0]),
|
||||
asn_DEF_NumericString_tags,
|
||||
sizeof(asn_DEF_NumericString_tags)
|
||||
/ sizeof(asn_DEF_NumericString_tags[0]) - 1,
|
||||
asn_DEF_NumericString_tags,
|
||||
sizeof(asn_DEF_NumericString_tags)
|
||||
/ sizeof(asn_DEF_NumericString_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
||||
int
|
||||
NumericString_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
||||
NumericString_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
asn_app_consume_bytes_f *app_errlog, void *app_key) {
|
||||
const NumericString_t *st = (const NumericString_t *)sptr;
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
typedef OCTET_STRING_t NumericString_t; /* Implemented via OCTET STRING */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_NumericString;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_NumericString;
|
||||
|
||||
asn_constr_check_f NumericString_constraint;
|
||||
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
/*
|
||||
* OBJECT IDENTIFIER basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_OBJECT_IDENTIFIER_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_OBJECT_IDENTIFIER_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (6 << 2))
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_OBJECT_IDENTIFIER = {
|
||||
asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER = {
|
||||
"OBJECT IDENTIFIER",
|
||||
ASN__PRIMITIVE_TYPE_free,
|
||||
OBJECT_IDENTIFIER_print,
|
||||
|
@ -24,19 +24,19 @@ asn1_TYPE_descriptor_t asn1_DEF_OBJECT_IDENTIFIER = {
|
|||
0, /* Not implemented yet */
|
||||
OBJECT_IDENTIFIER_encode_xer,
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_OBJECT_IDENTIFIER_tags,
|
||||
sizeof(asn1_DEF_OBJECT_IDENTIFIER_tags)
|
||||
/ sizeof(asn1_DEF_OBJECT_IDENTIFIER_tags[0]),
|
||||
asn1_DEF_OBJECT_IDENTIFIER_tags, /* Same as above */
|
||||
sizeof(asn1_DEF_OBJECT_IDENTIFIER_tags)
|
||||
/ sizeof(asn1_DEF_OBJECT_IDENTIFIER_tags[0]),
|
||||
asn_DEF_OBJECT_IDENTIFIER_tags,
|
||||
sizeof(asn_DEF_OBJECT_IDENTIFIER_tags)
|
||||
/ sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[0]),
|
||||
asn_DEF_OBJECT_IDENTIFIER_tags, /* Same as above */
|
||||
sizeof(asn_DEF_OBJECT_IDENTIFIER_tags)
|
||||
/ sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
||||
|
||||
int
|
||||
OBJECT_IDENTIFIER_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
||||
OBJECT_IDENTIFIER_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
asn_app_consume_bytes_f *app_errlog, void *app_key) {
|
||||
const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr;
|
||||
|
||||
|
@ -263,7 +263,7 @@ OBJECT_IDENTIFIER__dump_body(const OBJECT_IDENTIFIER_t *st, asn_app_consume_byte
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
OBJECT_IDENTIFIER_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
OBJECT_IDENTIFIER_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr;
|
||||
|
@ -282,7 +282,7 @@ OBJECT_IDENTIFIER_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
}
|
||||
|
||||
int
|
||||
OBJECT_IDENTIFIER_print(asn1_TYPE_descriptor_t *td, const void *sptr,
|
||||
OBJECT_IDENTIFIER_print(asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr;
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
typedef ASN__PRIMITIVE_TYPE_t OBJECT_IDENTIFIER_t;
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_OBJECT_IDENTIFIER;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER;
|
||||
|
||||
asn_struct_print_f OBJECT_IDENTIFIER_print;
|
||||
asn_constr_check_f OBJECT_IDENTIFIER_constraint;
|
||||
|
|
|
@ -11,10 +11,10 @@ typedef struct OCTET_STRING {
|
|||
uint8_t *buf; /* Buffer with consecutive OCTET_STRING bits */
|
||||
int size; /* Size of the buffer */
|
||||
|
||||
ber_dec_ctx_t _ber_dec_ctx; /* Parsing across buffer boundaries */
|
||||
asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */
|
||||
} OCTET_STRING_t;
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_OCTET_STRING;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING;
|
||||
|
||||
asn_struct_free_f OCTET_STRING_free;
|
||||
asn_struct_print_f OCTET_STRING_print;
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
/*
|
||||
* ObjectDescriptor basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_ObjectDescriptor_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_ObjectDescriptor_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (7 << 2)), /* [UNIVERSAL 7] IMPLICIT ... */
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_ObjectDescriptor = {
|
||||
asn_TYPE_descriptor_t asn_DEF_ObjectDescriptor = {
|
||||
"ObjectDescriptor",
|
||||
OCTET_STRING_free,
|
||||
OCTET_STRING_print_ascii, /* Treat as ASCII subset (it's not) */
|
||||
|
@ -22,12 +22,12 @@ asn1_TYPE_descriptor_t asn1_DEF_ObjectDescriptor = {
|
|||
0, /* Not implemented yet */
|
||||
OCTET_STRING_encode_xer_ascii,/* Implemented in terms of OCTET STRING */
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_ObjectDescriptor_tags,
|
||||
sizeof(asn1_DEF_ObjectDescriptor_tags)
|
||||
/ sizeof(asn1_DEF_ObjectDescriptor_tags[0]) - 1,
|
||||
asn1_DEF_ObjectDescriptor_tags,
|
||||
sizeof(asn1_DEF_ObjectDescriptor_tags)
|
||||
/ sizeof(asn1_DEF_ObjectDescriptor_tags[0]),
|
||||
asn_DEF_ObjectDescriptor_tags,
|
||||
sizeof(asn_DEF_ObjectDescriptor_tags)
|
||||
/ sizeof(asn_DEF_ObjectDescriptor_tags[0]) - 1,
|
||||
asn_DEF_ObjectDescriptor_tags,
|
||||
sizeof(asn_DEF_ObjectDescriptor_tags)
|
||||
/ sizeof(asn_DEF_ObjectDescriptor_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
|
||||
typedef GraphicString_t ObjectDescriptor_t; /* Implemented via GraphicString */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_ObjectDescriptor;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_ObjectDescriptor;
|
||||
|
||||
#endif /* _ObjectDescriptor_H_ */
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
/*
|
||||
* PrintableString basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_PrintableString_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_PrintableString_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), /* [UNIVERSAL 19] IMPLICIT ...*/
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_PrintableString = {
|
||||
asn_TYPE_descriptor_t asn_DEF_PrintableString = {
|
||||
"PrintableString",
|
||||
OCTET_STRING_free,
|
||||
OCTET_STRING_print_ascii, /* ASCII subset */
|
||||
|
@ -22,12 +22,12 @@ asn1_TYPE_descriptor_t asn1_DEF_PrintableString = {
|
|||
0, /* Not implemented yet */
|
||||
OCTET_STRING_encode_xer_ascii,/* Implemented in terms of OCTET STRING */
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_PrintableString_tags,
|
||||
sizeof(asn1_DEF_PrintableString_tags)
|
||||
/ sizeof(asn1_DEF_PrintableString_tags[0]) - 1,
|
||||
asn1_DEF_PrintableString_tags,
|
||||
sizeof(asn1_DEF_PrintableString_tags)
|
||||
/ sizeof(asn1_DEF_PrintableString_tags[0]),
|
||||
asn_DEF_PrintableString_tags,
|
||||
sizeof(asn_DEF_PrintableString_tags)
|
||||
/ sizeof(asn_DEF_PrintableString_tags[0]) - 1,
|
||||
asn_DEF_PrintableString_tags,
|
||||
sizeof(asn_DEF_PrintableString_tags)
|
||||
/ sizeof(asn_DEF_PrintableString_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
@ -56,7 +56,7 @@ static int _PrintableString_alphabet[256] = {
|
|||
};
|
||||
|
||||
int
|
||||
PrintableString_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
||||
PrintableString_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
asn_app_consume_bytes_f *app_errlog, void *app_key) {
|
||||
const PrintableString_t *st = (const PrintableString_t *)sptr;
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
typedef OCTET_STRING_t PrintableString_t; /* Implemented via OCTET STRING */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_PrintableString;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_PrintableString;
|
||||
|
||||
asn_constr_check_f PrintableString_constraint;
|
||||
|
||||
|
|
|
@ -20,10 +20,10 @@ static const double real_zero;
|
|||
/*
|
||||
* REAL basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_REAL_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_REAL_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_REAL = {
|
||||
asn_TYPE_descriptor_t asn_DEF_REAL = {
|
||||
"REAL",
|
||||
ASN__PRIMITIVE_TYPE_free,
|
||||
REAL_print,
|
||||
|
@ -33,10 +33,10 @@ asn1_TYPE_descriptor_t asn1_DEF_REAL = {
|
|||
0, /* Not implemented yet */
|
||||
REAL_encode_xer,
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_REAL_tags,
|
||||
sizeof(asn1_DEF_REAL_tags) / sizeof(asn1_DEF_REAL_tags[0]),
|
||||
asn1_DEF_REAL_tags, /* Same as above */
|
||||
sizeof(asn1_DEF_REAL_tags) / sizeof(asn1_DEF_REAL_tags[0]),
|
||||
asn_DEF_REAL_tags,
|
||||
sizeof(asn_DEF_REAL_tags) / sizeof(asn_DEF_REAL_tags[0]),
|
||||
asn_DEF_REAL_tags, /* Same as above */
|
||||
sizeof(asn_DEF_REAL_tags) / sizeof(asn_DEF_REAL_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
@ -182,7 +182,7 @@ REAL__dump(double d, int canonical, asn_app_consume_bytes_f *cb, void *app_key)
|
|||
}
|
||||
|
||||
int
|
||||
REAL_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
REAL_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const REAL_t *st = (const REAL_t *)sptr;
|
||||
ssize_t ret;
|
||||
|
@ -193,7 +193,7 @@ REAL_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
|||
|
||||
if(!st || !st->buf)
|
||||
ret = cb("<absent>", 8, app_key);
|
||||
else if(asn1_REAL2double(st, &d))
|
||||
else if(asn_REAL2double(st, &d))
|
||||
ret = cb("<error>", 7, app_key);
|
||||
else
|
||||
ret = REAL__dump(d, 0, cb, app_key);
|
||||
|
@ -202,7 +202,7 @@ REAL_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
REAL_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
REAL_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
REAL_t *st = (REAL_t *)sptr;
|
||||
|
@ -211,7 +211,7 @@ REAL_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
|
||||
(void)ilevel;
|
||||
|
||||
if(!st || !st->buf || asn1_REAL2double(st, &d))
|
||||
if(!st || !st->buf || asn_REAL2double(st, &d))
|
||||
_ASN_ENCODE_FAILED;
|
||||
|
||||
er.encoded = REAL__dump(d, flags & XER_F_CANONICAL, cb, app_key);
|
||||
|
@ -221,7 +221,7 @@ REAL_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
}
|
||||
|
||||
int
|
||||
asn1_REAL2double(const REAL_t *st, double *dbl_value) {
|
||||
asn_REAL2double(const REAL_t *st, double *dbl_value) {
|
||||
unsigned int octv;
|
||||
|
||||
if(!st || !st->buf) {
|
||||
|
@ -372,7 +372,7 @@ asn1_REAL2double(const REAL_t *st, double *dbl_value) {
|
|||
* [1 bit sign] [11 bits exponent] [52 bits mantissa]
|
||||
*/
|
||||
int
|
||||
asn1_double2REAL(REAL_t *st, double dbl_value) {
|
||||
asn_double2REAL(REAL_t *st, double dbl_value) {
|
||||
#ifdef WORDS_BIGENDIAN /* Known to be big-endian */
|
||||
int littleEndian = 0;
|
||||
#else /* need to test: have no explicit information */
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
typedef ASN__PRIMITIVE_TYPE_t REAL_t;
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_REAL;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_REAL;
|
||||
|
||||
asn_struct_print_f REAL_print;
|
||||
xer_type_encoder_f REAL_encode_xer;
|
||||
|
@ -27,7 +27,7 @@ ssize_t REAL__dump(double d, int canonical, asn_app_consume_bytes_f *cb, void *a
|
|||
* 0: Value converted successfully
|
||||
* -1: An error occured while converting the value: invalid format.
|
||||
*/
|
||||
int asn1_REAL2double(const REAL_t *real_ptr, double *d);
|
||||
int asn1_double2REAL(REAL_t *real_ptr, double d);
|
||||
int asn_REAL2double(const REAL_t *real_ptr, double *d);
|
||||
int asn_double2REAL(REAL_t *real_ptr, double d);
|
||||
|
||||
#endif /* ASN_TYPE_REAL_H */
|
||||
|
|
|
@ -12,10 +12,10 @@
|
|||
/*
|
||||
* RELATIVE-OID basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_RELATIVE_OID_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_RELATIVE_OID_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (13 << 2))
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_RELATIVE_OID = {
|
||||
asn_TYPE_descriptor_t asn_DEF_RELATIVE_OID = {
|
||||
"RELATIVE-OID",
|
||||
ASN__PRIMITIVE_TYPE_free,
|
||||
RELATIVE_OID_print,
|
||||
|
@ -25,12 +25,12 @@ asn1_TYPE_descriptor_t asn1_DEF_RELATIVE_OID = {
|
|||
0, /* Not implemented yet */
|
||||
RELATIVE_OID_encode_xer,
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_RELATIVE_OID_tags,
|
||||
sizeof(asn1_DEF_RELATIVE_OID_tags)
|
||||
/ sizeof(asn1_DEF_RELATIVE_OID_tags[0]),
|
||||
asn1_DEF_RELATIVE_OID_tags, /* Same as above */
|
||||
sizeof(asn1_DEF_RELATIVE_OID_tags)
|
||||
/ sizeof(asn1_DEF_RELATIVE_OID_tags[0]),
|
||||
asn_DEF_RELATIVE_OID_tags,
|
||||
sizeof(asn_DEF_RELATIVE_OID_tags)
|
||||
/ sizeof(asn_DEF_RELATIVE_OID_tags[0]),
|
||||
asn_DEF_RELATIVE_OID_tags, /* Same as above */
|
||||
sizeof(asn_DEF_RELATIVE_OID_tags)
|
||||
/ sizeof(asn_DEF_RELATIVE_OID_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
@ -65,7 +65,7 @@ RELATIVE_OID__dump_body(const RELATIVE_OID_t *st, asn_app_consume_bytes_f *cb, v
|
|||
}
|
||||
|
||||
int
|
||||
RELATIVE_OID_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
RELATIVE_OID_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const RELATIVE_OID_t *st = (const RELATIVE_OID_t *)sptr;
|
||||
|
||||
|
@ -86,7 +86,7 @@ RELATIVE_OID_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
RELATIVE_OID_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
RELATIVE_OID_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
RELATIVE_OID_t *st = (RELATIVE_OID_t *)sptr;
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
/* Implemented via OBJECT IDENTIFIER */
|
||||
typedef OBJECT_IDENTIFIER_t RELATIVE_OID_t;
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_RELATIVE_OID;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_RELATIVE_OID;
|
||||
|
||||
asn_struct_print_f RELATIVE_OID_print;
|
||||
xer_type_encoder_f RELATIVE_OID_encode_xer;
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
/*
|
||||
* T61String basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_T61String_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_T61String_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (20 << 2)), /* [UNIVERSAL 20] IMPLICIT ...*/
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_T61String = {
|
||||
asn_TYPE_descriptor_t asn_DEF_T61String = {
|
||||
"T61String",
|
||||
OCTET_STRING_free,
|
||||
OCTET_STRING_print, /* non-ascii string */
|
||||
|
@ -22,12 +22,12 @@ asn1_TYPE_descriptor_t asn1_DEF_T61String = {
|
|||
0, /* Not implemented yet */
|
||||
OCTET_STRING_encode_xer, /* Implemented in terms of OCTET STRING */
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_T61String_tags,
|
||||
sizeof(asn1_DEF_T61String_tags)
|
||||
/ sizeof(asn1_DEF_T61String_tags[0]) - 1,
|
||||
asn1_DEF_T61String_tags,
|
||||
sizeof(asn1_DEF_T61String_tags)
|
||||
/ sizeof(asn1_DEF_T61String_tags[0]),
|
||||
asn_DEF_T61String_tags,
|
||||
sizeof(asn_DEF_T61String_tags)
|
||||
/ sizeof(asn_DEF_T61String_tags[0]) - 1,
|
||||
asn_DEF_T61String_tags,
|
||||
sizeof(asn_DEF_T61String_tags)
|
||||
/ sizeof(asn_DEF_T61String_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
|
||||
typedef OCTET_STRING_t T61String_t; /* Implemented via OCTET STRING */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_T61String;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_T61String;
|
||||
|
||||
#endif /* _T61String_H_ */
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
/*
|
||||
* TeletexString basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_TeletexString_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_TeletexString_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (20 << 2)), /* [UNIVERSAL 20] IMPLICIT ...*/
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), /* ... OCTET STRING */
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_TeletexString = {
|
||||
asn_TYPE_descriptor_t asn_DEF_TeletexString = {
|
||||
"TeletexString",
|
||||
OCTET_STRING_free,
|
||||
OCTET_STRING_print, /* non-ascii string */
|
||||
|
@ -22,12 +22,12 @@ asn1_TYPE_descriptor_t asn1_DEF_TeletexString = {
|
|||
0, /* Not implemented yet */
|
||||
OCTET_STRING_encode_xer, /* Implemented in terms of OCTET STRING */
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_TeletexString_tags,
|
||||
sizeof(asn1_DEF_TeletexString_tags)
|
||||
/ sizeof(asn1_DEF_TeletexString_tags[0]) - 1,
|
||||
asn1_DEF_TeletexString_tags,
|
||||
sizeof(asn1_DEF_TeletexString_tags)
|
||||
/ sizeof(asn1_DEF_TeletexString_tags[0]),
|
||||
asn_DEF_TeletexString_tags,
|
||||
sizeof(asn_DEF_TeletexString_tags)
|
||||
/ sizeof(asn_DEF_TeletexString_tags[0]) - 1,
|
||||
asn_DEF_TeletexString_tags,
|
||||
sizeof(asn_DEF_TeletexString_tags)
|
||||
/ sizeof(asn_DEF_TeletexString_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
|
||||
typedef OCTET_STRING_t TeletexString_t; /* Implemented via OCTET STRING */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_TeletexString;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_TeletexString;
|
||||
|
||||
#endif /* _TeletexString_H_ */
|
||||
|
|
|
@ -14,12 +14,12 @@
|
|||
/*
|
||||
* UTCTime basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_UTCTime_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_UTCTime_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (23 << 2)), /* [UNIVERSAL 23] IMPLICIT ...*/
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), /* [UNIVERSAL 26] IMPLICIT ...*/
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_UTCTime = {
|
||||
asn_TYPE_descriptor_t asn_DEF_UTCTime = {
|
||||
"UTCTime",
|
||||
OCTET_STRING_free,
|
||||
UTCTime_print,
|
||||
|
@ -29,12 +29,12 @@ asn1_TYPE_descriptor_t asn1_DEF_UTCTime = {
|
|||
0, /* Not implemented yet */
|
||||
UTCTime_encode_xer,
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_UTCTime_tags,
|
||||
sizeof(asn1_DEF_UTCTime_tags)
|
||||
/ sizeof(asn1_DEF_UTCTime_tags[0]) - 2,
|
||||
asn1_DEF_UTCTime_tags,
|
||||
sizeof(asn1_DEF_UTCTime_tags)
|
||||
/ sizeof(asn1_DEF_UTCTime_tags[0]),
|
||||
asn_DEF_UTCTime_tags,
|
||||
sizeof(asn_DEF_UTCTime_tags)
|
||||
/ sizeof(asn_DEF_UTCTime_tags[0]) - 2,
|
||||
asn_DEF_UTCTime_tags,
|
||||
sizeof(asn_DEF_UTCTime_tags)
|
||||
/ sizeof(asn_DEF_UTCTime_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
@ -45,7 +45,7 @@ asn1_TYPE_descriptor_t asn1_DEF_UTCTime = {
|
|||
* Check that the time looks like the time.
|
||||
*/
|
||||
int
|
||||
UTCTime_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
||||
UTCTime_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
asn_app_consume_bytes_f *app_errlog, void *app_key) {
|
||||
const UTCTime_t *st = (const UTCTime_t *)sptr;
|
||||
time_t tloc;
|
||||
|
@ -63,7 +63,7 @@ UTCTime_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
UTCTime_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
UTCTime_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
OCTET_STRING_t st;
|
||||
|
@ -93,7 +93,7 @@ UTCTime_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
}
|
||||
|
||||
int
|
||||
UTCTime_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
UTCTime_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const UTCTime_t *st = (const UTCTime_t *)sptr;
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
typedef OCTET_STRING_t UTCTime_t; /* Implemented via OCTET STRING */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_UTCTime;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_UTCTime;
|
||||
|
||||
asn_struct_print_f UTCTime_print;
|
||||
asn_constr_check_f UTCTime_constraint;
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
/*
|
||||
* UTF8String basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_UTF8String_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_UTF8String_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (12 << 2)), /* [UNIVERSAL 12] IMPLICIT ...*/
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), /* ... OCTET STRING */
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_UTF8String = {
|
||||
asn_TYPE_descriptor_t asn_DEF_UTF8String = {
|
||||
"UTF8String",
|
||||
OCTET_STRING_free,
|
||||
UTF8String_print,
|
||||
|
@ -22,12 +22,12 @@ asn1_TYPE_descriptor_t asn1_DEF_UTF8String = {
|
|||
0, /* Not implemented yet */
|
||||
OCTET_STRING_encode_xer_ascii, /* Already in UTF-8 format */
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_UTF8String_tags,
|
||||
sizeof(asn1_DEF_UTF8String_tags)
|
||||
/ sizeof(asn1_DEF_UTF8String_tags[0]) - 1,
|
||||
asn1_DEF_UTF8String_tags,
|
||||
sizeof(asn1_DEF_UTF8String_tags)
|
||||
/ sizeof(asn1_DEF_UTF8String_tags[0]),
|
||||
asn_DEF_UTF8String_tags,
|
||||
sizeof(asn_DEF_UTF8String_tags)
|
||||
/ sizeof(asn_DEF_UTF8String_tags[0]) - 1,
|
||||
asn_DEF_UTF8String_tags,
|
||||
sizeof(asn_DEF_UTF8String_tags)
|
||||
/ sizeof(asn_DEF_UTF8String_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
@ -42,7 +42,7 @@ static int _UTF8String_h2[16] = {
|
|||
};
|
||||
|
||||
int
|
||||
UTF8String_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
||||
UTF8String_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
asn_app_consume_bytes_f *app_errlog, void *app_key) {
|
||||
ssize_t len;
|
||||
len = UTF8String_length((const UTF8String_t *)sptr, td->name,
|
||||
|
@ -113,7 +113,7 @@ UTF8String_length(const UTF8String_t *st, const char *opt_type_name,
|
|||
}
|
||||
|
||||
int
|
||||
UTF8String_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
UTF8String_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const UTF8String_t *st = (const UTF8String_t *)sptr;
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
typedef OCTET_STRING_t UTF8String_t; /* Implemented via OCTET STRING */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_UTF8String;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_UTF8String;
|
||||
|
||||
asn_struct_print_f UTF8String_print;
|
||||
asn_constr_check_f UTF8String_constraint;
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
/*
|
||||
* UniversalString basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_UniversalString_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_UniversalString_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (28 << 2)), /* [UNIVERSAL 28] IMPLICIT ...*/
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_UniversalString = {
|
||||
asn_TYPE_descriptor_t asn_DEF_UniversalString = {
|
||||
"UniversalString",
|
||||
OCTET_STRING_free,
|
||||
UniversalString_print, /* Convert into UTF8 and print */
|
||||
|
@ -22,12 +22,12 @@ asn1_TYPE_descriptor_t asn1_DEF_UniversalString = {
|
|||
0, /* Not implemented yet */
|
||||
UniversalString_encode_xer, /* Conver into UTF8 */
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_UniversalString_tags,
|
||||
sizeof(asn1_DEF_UniversalString_tags)
|
||||
/ sizeof(asn1_DEF_UniversalString_tags[0]) - 1,
|
||||
asn1_DEF_UniversalString_tags,
|
||||
sizeof(asn1_DEF_UniversalString_tags)
|
||||
/ sizeof(asn1_DEF_UniversalString_tags[0]),
|
||||
asn_DEF_UniversalString_tags,
|
||||
sizeof(asn_DEF_UniversalString_tags)
|
||||
/ sizeof(asn_DEF_UniversalString_tags[0]) - 1,
|
||||
asn_DEF_UniversalString_tags,
|
||||
sizeof(asn_DEF_UniversalString_tags)
|
||||
/ sizeof(asn_DEF_UniversalString_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
@ -93,7 +93,7 @@ UniversalString__dump(const UniversalString_t *st,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
UniversalString_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
UniversalString_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const UniversalString_t *st = (const UniversalString_t *)sptr;
|
||||
|
@ -112,7 +112,7 @@ UniversalString_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
}
|
||||
|
||||
int
|
||||
UniversalString_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
UniversalString_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const UniversalString_t *st = (const UniversalString_t *)sptr;
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
typedef OCTET_STRING_t UniversalString_t; /* Implemented via OCTET STRING */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_UniversalString;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_UniversalString;
|
||||
|
||||
asn_struct_print_f UniversalString_print; /* Human-readable output */
|
||||
xer_type_encoder_f UniversalString_encode_xer;
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
/*
|
||||
* VideotexString basic type description.
|
||||
*/
|
||||
static ber_tlv_tag_t asn1_DEF_VideotexString_tags[] = {
|
||||
static ber_tlv_tag_t asn_DEF_VideotexString_tags[] = {
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (21 << 2)), /* [UNIVERSAL 21] IMPLICIT */
|
||||
(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */
|
||||
};
|
||||
asn1_TYPE_descriptor_t asn1_DEF_VideotexString = {
|
||||
asn_TYPE_descriptor_t asn_DEF_VideotexString = {
|
||||
"VideotexString",
|
||||
OCTET_STRING_free,
|
||||
OCTET_STRING_print, /* non-ascii string */
|
||||
|
@ -22,12 +22,12 @@ asn1_TYPE_descriptor_t asn1_DEF_VideotexString = {
|
|||
0, /* Not implemented yet */
|
||||
OCTET_STRING_encode_xer, /* Implemented in terms of OCTET STRING */
|
||||
0, /* Use generic outmost tag fetcher */
|
||||
asn1_DEF_VideotexString_tags,
|
||||
sizeof(asn1_DEF_VideotexString_tags)
|
||||
/ sizeof(asn1_DEF_VideotexString_tags[0]) - 1,
|
||||
asn1_DEF_VideotexString_tags,
|
||||
sizeof(asn1_DEF_VideotexString_tags)
|
||||
/ sizeof(asn1_DEF_VideotexString_tags[0]),
|
||||
asn_DEF_VideotexString_tags,
|
||||
sizeof(asn_DEF_VideotexString_tags)
|
||||
/ sizeof(asn_DEF_VideotexString_tags[0]) - 1,
|
||||
asn_DEF_VideotexString_tags,
|
||||
sizeof(asn_DEF_VideotexString_tags)
|
||||
/ sizeof(asn_DEF_VideotexString_tags[0]),
|
||||
0, 0, /* No members */
|
||||
0 /* No specifics */
|
||||
};
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
|
||||
typedef OCTET_STRING_t VideotexString_t; /* Implemented via OCTET STRING */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_VideotexString;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_VideotexString;
|
||||
|
||||
#endif /* _VideotexString_H_ */
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
typedef OCTET_STRING_t VisibleString_t; /* Implemented via OCTET STRING */
|
||||
|
||||
extern asn1_TYPE_descriptor_t asn1_DEF_VisibleString;
|
||||
extern asn_TYPE_descriptor_t asn_DEF_VisibleString;
|
||||
|
||||
asn_constr_check_f VisibleString_constraint;
|
||||
|
||||
|
|
|
@ -20,6 +20,6 @@
|
|||
typedef int (asn_app_consume_bytes_f)(const void *buffer, size_t size,
|
||||
void *application_specific_key);
|
||||
|
||||
#include <constr_TYPE.h> /* for asn1_TYPE_descriptor_t */
|
||||
#include <constr_TYPE.h> /* for asn_TYPE_descriptor_t */
|
||||
|
||||
#endif /* _ASN_APPLICATION_H_ */
|
||||
|
|
|
@ -11,7 +11,8 @@
|
|||
* Decode an always-primitive type.
|
||||
*/
|
||||
ber_dec_rval_t
|
||||
ber_decode_primitive(asn1_TYPE_descriptor_t *td,
|
||||
ber_decode_primitive(asn_codec_ctx_t *opt_codec_ctx,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void **sptr, void *buf_ptr, size_t size, int tag_mode) {
|
||||
ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr;
|
||||
ber_dec_rval_t rval;
|
||||
|
@ -35,7 +36,8 @@ ber_decode_primitive(asn1_TYPE_descriptor_t *td,
|
|||
/*
|
||||
* Check tags and extract value length.
|
||||
*/
|
||||
rval = ber_check_tags(td, 0, buf_ptr, size, tag_mode, 0, &length, 0);
|
||||
rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size,
|
||||
tag_mode, 0, &length, 0);
|
||||
if(rval.code != RC_OK)
|
||||
return rval;
|
||||
|
||||
|
@ -78,7 +80,7 @@ ber_decode_primitive(asn1_TYPE_descriptor_t *td,
|
|||
* Encode an always-primitive type using DER.
|
||||
*/
|
||||
asn_enc_rval_t
|
||||
der_encode_primitive(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
der_encode_primitive(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int tag_mode, ber_tlv_tag_t tag,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn_enc_rval_t erval;
|
||||
|
@ -113,7 +115,7 @@ der_encode_primitive(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
}
|
||||
|
||||
void
|
||||
ASN__PRIMITIVE_TYPE_free(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
ASN__PRIMITIVE_TYPE_free(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int contents_only) {
|
||||
ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)sptr;
|
||||
|
||||
|
|
|
@ -70,8 +70,8 @@ static void _set_present_idx(void *sptr, int offset, int size, int pres);
|
|||
*/
|
||||
static int
|
||||
_search4tag(const void *ap, const void *bp) {
|
||||
const asn1_TYPE_tag2member_t *a = (const asn1_TYPE_tag2member_t *)ap;
|
||||
const asn1_TYPE_tag2member_t *b = (const asn1_TYPE_tag2member_t *)bp;
|
||||
const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap;
|
||||
const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp;
|
||||
|
||||
int a_class = BER_TAG_CLASS(a->el_tag);
|
||||
int b_class = BER_TAG_CLASS(b->el_tag);
|
||||
|
@ -97,23 +97,22 @@ _search4tag(const void *ap, const void *bp) {
|
|||
* The decoder of the CHOICE type.
|
||||
*/
|
||||
ber_dec_rval_t
|
||||
CHOICE_decode_ber(asn1_TYPE_descriptor_t *td,
|
||||
CHOICE_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
|
||||
void **struct_ptr, void *ptr, size_t size, int tag_mode) {
|
||||
/*
|
||||
* Bring closer parts of structure description.
|
||||
*/
|
||||
asn1_CHOICE_specifics_t *specs = (asn1_CHOICE_specifics_t *)td->specifics;
|
||||
asn1_TYPE_member_t *elements = td->elements;
|
||||
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics;
|
||||
asn_TYPE_member_t *elements = td->elements;
|
||||
|
||||
/*
|
||||
* Parts of the structure being constructed.
|
||||
*/
|
||||
void *st = *struct_ptr; /* Target structure. */
|
||||
ber_dec_ctx_t *ctx; /* Decoder context */
|
||||
asn_struct_ctx_t *ctx; /* Decoder context */
|
||||
|
||||
ber_tlv_tag_t tlv_tag; /* T from TLV */
|
||||
ssize_t tag_len; /* Length of TLV's T */
|
||||
//ber_tlv_len_t tlv_len; /* L from TLV */
|
||||
ber_dec_rval_t rval; /* Return code from subparsers */
|
||||
|
||||
ssize_t consumed_myself = 0; /* Consumed bytes from ptr */
|
||||
|
@ -133,7 +132,7 @@ CHOICE_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
/*
|
||||
* Restore parsing context.
|
||||
*/
|
||||
ctx = (ber_dec_ctx_t *)((char *)st + specs->ctx_offset);
|
||||
ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
|
||||
|
||||
/*
|
||||
* Start to parse where left previously
|
||||
|
@ -147,7 +146,7 @@ CHOICE_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
*/
|
||||
|
||||
if(tag_mode || td->tags_count) {
|
||||
rval = ber_check_tags(td, ctx, ptr, size,
|
||||
rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size,
|
||||
tag_mode, -1, &ctx->left, 0);
|
||||
if(rval.code != RC_OK) {
|
||||
ASN_DEBUG("%s tagging check failed: %d",
|
||||
|
@ -184,8 +183,8 @@ CHOICE_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
}
|
||||
|
||||
do {
|
||||
asn1_TYPE_tag2member_t *t2m;
|
||||
asn1_TYPE_tag2member_t key;
|
||||
asn_TYPE_tag2member_t *t2m;
|
||||
asn_TYPE_tag2member_t key;
|
||||
|
||||
key.el_tag = tlv_tag;
|
||||
(void *)t2m = bsearch(&key,
|
||||
|
@ -231,7 +230,7 @@ CHOICE_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
* Read in the element.
|
||||
*/
|
||||
do {
|
||||
asn1_TYPE_member_t *elm;/* CHOICE's element */
|
||||
asn_TYPE_member_t *elm;/* CHOICE's element */
|
||||
void *memb_ptr; /* Pointer to the member */
|
||||
void **memb_ptr2; /* Pointer to that pointer */
|
||||
|
||||
|
@ -256,7 +255,7 @@ CHOICE_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
/*
|
||||
* Invoke the member fetch routine according to member's type
|
||||
*/
|
||||
rval = elm->type->ber_decoder(elm->type,
|
||||
rval = elm->type->ber_decoder(opt_codec_ctx, elm->type,
|
||||
memb_ptr2, ptr, LEFT,
|
||||
elm->tag_mode);
|
||||
switch(rval.code) {
|
||||
|
@ -353,12 +352,12 @@ CHOICE_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
CHOICE_encode_der(asn1_TYPE_descriptor_t *td,
|
||||
CHOICE_encode_der(asn_TYPE_descriptor_t *td,
|
||||
void *struct_ptr,
|
||||
int tag_mode, ber_tlv_tag_t tag,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn1_CHOICE_specifics_t *specs = (asn1_CHOICE_specifics_t *)td->specifics;
|
||||
asn1_TYPE_member_t *elm; /* CHOICE element */
|
||||
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics;
|
||||
asn_TYPE_member_t *elm; /* CHOICE element */
|
||||
asn_enc_rval_t erval;
|
||||
void *memb_ptr;
|
||||
size_t computed_size = 0;
|
||||
|
@ -453,8 +452,8 @@ CHOICE_encode_der(asn1_TYPE_descriptor_t *td,
|
|||
}
|
||||
|
||||
ber_tlv_tag_t
|
||||
CHOICE_outmost_tag(asn1_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) {
|
||||
asn1_CHOICE_specifics_t *specs = (asn1_CHOICE_specifics_t *)td->specifics;
|
||||
CHOICE_outmost_tag(asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) {
|
||||
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics;
|
||||
int present;
|
||||
|
||||
assert(tag_mode == 0);
|
||||
|
@ -466,7 +465,7 @@ CHOICE_outmost_tag(asn1_TYPE_descriptor_t *td, const void *ptr, int tag_mode, be
|
|||
present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size);
|
||||
|
||||
if(present > 0 || present <= td->elements_count) {
|
||||
asn1_TYPE_member_t *elm = &td->elements[present-1];
|
||||
asn_TYPE_member_t *elm = &td->elements[present-1];
|
||||
const void *memb_ptr;
|
||||
|
||||
if(elm->flags & ATF_POINTER) {
|
||||
|
@ -477,7 +476,7 @@ CHOICE_outmost_tag(asn1_TYPE_descriptor_t *td, const void *ptr, int tag_mode, be
|
|||
((const char *)ptr + elm->memb_offset);
|
||||
}
|
||||
|
||||
return asn1_TYPE_outmost_tag(elm->type, memb_ptr,
|
||||
return asn_TYPE_outmost_tag(elm->type, memb_ptr,
|
||||
elm->tag_mode, elm->tag);
|
||||
} else {
|
||||
return (ber_tlv_tag_t)-1;
|
||||
|
@ -485,9 +484,9 @@ CHOICE_outmost_tag(asn1_TYPE_descriptor_t *td, const void *ptr, int tag_mode, be
|
|||
}
|
||||
|
||||
int
|
||||
CHOICE_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
||||
CHOICE_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
asn_app_consume_bytes_f *app_errlog, void *app_key) {
|
||||
asn1_CHOICE_specifics_t *specs = (asn1_CHOICE_specifics_t *)td->specifics;
|
||||
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics;
|
||||
int present;
|
||||
|
||||
if(!sptr) {
|
||||
|
@ -502,7 +501,7 @@ CHOICE_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
|||
*/
|
||||
present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size);
|
||||
if(present > 0 && present <= td->elements_count) {
|
||||
asn1_TYPE_member_t *elm = &td->elements[present-1];
|
||||
asn_TYPE_member_t *elm = &td->elements[present-1];
|
||||
const void *memb_ptr;
|
||||
|
||||
if(elm->flags & ATF_POINTER) {
|
||||
|
@ -541,10 +540,10 @@ CHOICE_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
CHOICE_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
CHOICE_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn1_CHOICE_specifics_t *specs=(asn1_CHOICE_specifics_t *)td->specifics;
|
||||
asn_CHOICE_specifics_t *specs=(asn_CHOICE_specifics_t *)td->specifics;
|
||||
asn_enc_rval_t er;
|
||||
int present;
|
||||
|
||||
|
@ -560,7 +559,7 @@ CHOICE_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
_ASN_ENCODE_FAILED;
|
||||
} else {
|
||||
asn_enc_rval_t tmper;
|
||||
asn1_TYPE_member_t *elm = &td->elements[present-1];
|
||||
asn_TYPE_member_t *elm = &td->elements[present-1];
|
||||
void *memb_ptr;
|
||||
const char *mname = elm->name;
|
||||
unsigned int mlen = strlen(mname);
|
||||
|
@ -592,9 +591,9 @@ CHOICE_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
}
|
||||
|
||||
int
|
||||
CHOICE_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
CHOICE_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn1_CHOICE_specifics_t *specs = (asn1_CHOICE_specifics_t *)td->specifics;
|
||||
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics;
|
||||
int present;
|
||||
|
||||
if(!sptr) return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
|
||||
|
@ -608,7 +607,7 @@ CHOICE_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
|||
* Print that element.
|
||||
*/
|
||||
if(present > 0 && present <= td->elements_count) {
|
||||
asn1_TYPE_member_t *elm = &td->elements[present-1];
|
||||
asn_TYPE_member_t *elm = &td->elements[present-1];
|
||||
const void *memb_ptr;
|
||||
|
||||
if(elm->flags & ATF_POINTER) {
|
||||
|
@ -633,8 +632,8 @@ CHOICE_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
|||
}
|
||||
|
||||
void
|
||||
CHOICE_free(asn1_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
||||
asn1_CHOICE_specifics_t *specs = (asn1_CHOICE_specifics_t *)td->specifics;
|
||||
CHOICE_free(asn_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
||||
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics;
|
||||
int present;
|
||||
|
||||
if(!td || !ptr)
|
||||
|
@ -651,7 +650,7 @@ CHOICE_free(asn1_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
|||
* Free that element.
|
||||
*/
|
||||
if(present > 0 && present <= td->elements_count) {
|
||||
asn1_TYPE_member_t *elm = &td->elements[present-1];
|
||||
asn_TYPE_member_t *elm = &td->elements[present-1];
|
||||
void *memb_ptr;
|
||||
|
||||
if(elm->flags & ATF_POINTER) {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
#include <asn_application.h>
|
||||
|
||||
typedef struct asn1_CHOICE_specifics_s {
|
||||
typedef struct asn_CHOICE_specifics_s {
|
||||
/*
|
||||
* Target structure description.
|
||||
*/
|
||||
|
@ -19,14 +19,14 @@ typedef struct asn1_CHOICE_specifics_s {
|
|||
/*
|
||||
* Tags to members mapping table.
|
||||
*/
|
||||
asn1_TYPE_tag2member_t *tag2el;
|
||||
asn_TYPE_tag2member_t *tag2el;
|
||||
int tag2el_count;
|
||||
|
||||
/*
|
||||
* Extensions-related stuff.
|
||||
*/
|
||||
int extensible; /* Whether CHOICE is extensible */
|
||||
} asn1_CHOICE_specifics_t;
|
||||
} asn_CHOICE_specifics_t;
|
||||
|
||||
/*
|
||||
* A set specialized functions dealing with the CHOICE type.
|
||||
|
|
|
@ -74,8 +74,8 @@
|
|||
*/
|
||||
static int
|
||||
_t2e_cmp(const void *ap, const void *bp) {
|
||||
const asn1_TYPE_tag2member_t *a = (const asn1_TYPE_tag2member_t *)ap;
|
||||
const asn1_TYPE_tag2member_t *b = (const asn1_TYPE_tag2member_t *)bp;
|
||||
const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap;
|
||||
const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp;
|
||||
|
||||
int a_class = BER_TAG_CLASS(a->el_tag);
|
||||
int b_class = BER_TAG_CLASS(b->el_tag);
|
||||
|
@ -108,22 +108,21 @@ _t2e_cmp(const void *ap, const void *bp) {
|
|||
* The decoder of the SEQUENCE type.
|
||||
*/
|
||||
ber_dec_rval_t
|
||||
SEQUENCE_decode_ber(asn1_TYPE_descriptor_t *td,
|
||||
SEQUENCE_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
|
||||
void **struct_ptr, void *ptr, size_t size, int tag_mode) {
|
||||
/*
|
||||
* Bring closer parts of structure description.
|
||||
*/
|
||||
asn1_SEQUENCE_specifics_t *specs = (asn1_SEQUENCE_specifics_t *)td->specifics;
|
||||
asn1_TYPE_member_t *elements = td->elements;
|
||||
asn_SEQUENCE_specifics_t *specs = (asn_SEQUENCE_specifics_t *)td->specifics;
|
||||
asn_TYPE_member_t *elements = td->elements;
|
||||
|
||||
/*
|
||||
* Parts of the structure being constructed.
|
||||
*/
|
||||
void *st = *struct_ptr; /* Target structure. */
|
||||
ber_dec_ctx_t *ctx; /* Decoder context */
|
||||
asn_struct_ctx_t *ctx; /* Decoder context */
|
||||
|
||||
ber_tlv_tag_t tlv_tag; /* T from TLV */
|
||||
//ber_tlv_len_t tlv_len; /* L from TLV */
|
||||
ber_dec_rval_t rval; /* Return code from subparsers */
|
||||
|
||||
ssize_t consumed_myself = 0; /* Consumed bytes from ptr */
|
||||
|
@ -144,7 +143,7 @@ SEQUENCE_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
/*
|
||||
* Restore parsing context.
|
||||
*/
|
||||
ctx = (ber_dec_ctx_t *)((char *)st + specs->ctx_offset);
|
||||
ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
|
||||
|
||||
/*
|
||||
* Start to parse where left previously
|
||||
|
@ -157,7 +156,7 @@ SEQUENCE_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
* perfectly fits our expectations.
|
||||
*/
|
||||
|
||||
rval = ber_check_tags(td, ctx, ptr, size,
|
||||
rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size,
|
||||
tag_mode, 1, &ctx->left, 0);
|
||||
if(rval.code != RC_OK) {
|
||||
ASN_DEBUG("%s tagging check failed: %d",
|
||||
|
@ -282,16 +281,16 @@ SEQUENCE_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
* Resort to a binary search over
|
||||
* sorted array of tags.
|
||||
*/
|
||||
asn1_TYPE_tag2member_t *t2m;
|
||||
asn1_TYPE_tag2member_t key;
|
||||
asn_TYPE_tag2member_t *t2m;
|
||||
asn_TYPE_tag2member_t key;
|
||||
key.el_tag = tlv_tag;
|
||||
key.el_no = edx;
|
||||
(void *)t2m = bsearch(&key,
|
||||
specs->tag2el, specs->tag2el_count,
|
||||
sizeof(specs->tag2el[0]), _t2e_cmp);
|
||||
if(t2m) {
|
||||
asn1_TYPE_tag2member_t *best = 0;
|
||||
asn1_TYPE_tag2member_t *t2m_f, *t2m_l;
|
||||
asn_TYPE_tag2member_t *best = 0;
|
||||
asn_TYPE_tag2member_t *t2m_f, *t2m_l;
|
||||
int edx_max = edx + elements[edx].optional;
|
||||
/*
|
||||
* Rewind to the first element with that tag,
|
||||
|
@ -397,7 +396,7 @@ SEQUENCE_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
/*
|
||||
* Invoke the member fetch routine according to member's type
|
||||
*/
|
||||
rval = elements[edx].type->ber_decoder(
|
||||
rval = elements[edx].type->ber_decoder(opt_codec_ctx,
|
||||
elements[edx].type,
|
||||
memb_ptr2, ptr, LEFT,
|
||||
elements[edx].tag_mode);
|
||||
|
@ -498,7 +497,7 @@ SEQUENCE_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
* The DER encoder of the SEQUENCE type.
|
||||
*/
|
||||
asn_enc_rval_t
|
||||
SEQUENCE_encode_der(asn1_TYPE_descriptor_t *td,
|
||||
SEQUENCE_encode_der(asn_TYPE_descriptor_t *td,
|
||||
void *ptr, int tag_mode, ber_tlv_tag_t tag,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
size_t computed_size = 0;
|
||||
|
@ -513,7 +512,7 @@ SEQUENCE_encode_der(asn1_TYPE_descriptor_t *td,
|
|||
* Gather the length of the underlying members sequence.
|
||||
*/
|
||||
for(edx = 0; edx < td->elements_count; edx++) {
|
||||
asn1_TYPE_member_t *elm = &td->elements[edx];
|
||||
asn_TYPE_member_t *elm = &td->elements[edx];
|
||||
void *memb_ptr;
|
||||
if(elm->flags & ATF_POINTER) {
|
||||
memb_ptr = *(void **)((char *)ptr + elm->memb_offset);
|
||||
|
@ -550,7 +549,7 @@ SEQUENCE_encode_der(asn1_TYPE_descriptor_t *td,
|
|||
* Encode all members.
|
||||
*/
|
||||
for(edx = 0; edx < td->elements_count; edx++) {
|
||||
asn1_TYPE_member_t *elm = &td->elements[edx];
|
||||
asn_TYPE_member_t *elm = &td->elements[edx];
|
||||
asn_enc_rval_t tmperval;
|
||||
void *memb_ptr;
|
||||
|
||||
|
@ -583,7 +582,7 @@ SEQUENCE_encode_der(asn1_TYPE_descriptor_t *td,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
SEQUENCE_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
SEQUENCE_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn_enc_rval_t er;
|
||||
|
@ -597,7 +596,7 @@ SEQUENCE_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
|
||||
for(edx = 0; edx < td->elements_count; edx++) {
|
||||
asn_enc_rval_t tmper;
|
||||
asn1_TYPE_member_t *elm = &td->elements[edx];
|
||||
asn_TYPE_member_t *elm = &td->elements[edx];
|
||||
void *memb_ptr;
|
||||
const char *mname = elm->name;
|
||||
unsigned int mlen = strlen(mname);
|
||||
|
@ -627,7 +626,7 @@ SEQUENCE_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
}
|
||||
|
||||
int
|
||||
SEQUENCE_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
SEQUENCE_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
int edx;
|
||||
int ret;
|
||||
|
@ -640,7 +639,7 @@ SEQUENCE_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
|||
return -1;
|
||||
|
||||
for(edx = 0; edx < td->elements_count; edx++) {
|
||||
asn1_TYPE_member_t *elm = &td->elements[edx];
|
||||
asn_TYPE_member_t *elm = &td->elements[edx];
|
||||
const void *memb_ptr;
|
||||
|
||||
if(elm->flags & ATF_POINTER) {
|
||||
|
@ -671,7 +670,7 @@ SEQUENCE_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
|||
}
|
||||
|
||||
void
|
||||
SEQUENCE_free(asn1_TYPE_descriptor_t *td, void *sptr, int contents_only) {
|
||||
SEQUENCE_free(asn_TYPE_descriptor_t *td, void *sptr, int contents_only) {
|
||||
int edx;
|
||||
|
||||
if(!td || !sptr)
|
||||
|
@ -680,7 +679,7 @@ SEQUENCE_free(asn1_TYPE_descriptor_t *td, void *sptr, int contents_only) {
|
|||
ASN_DEBUG("Freeing %s as SEQUENCE", td->name);
|
||||
|
||||
for(edx = 0; edx < td->elements_count; edx++) {
|
||||
asn1_TYPE_member_t *elm = &td->elements[edx];
|
||||
asn_TYPE_member_t *elm = &td->elements[edx];
|
||||
void *memb_ptr;
|
||||
if(elm->flags & ATF_POINTER) {
|
||||
memb_ptr = *(void **)((char *)sptr + elm->memb_offset);
|
||||
|
@ -698,7 +697,7 @@ SEQUENCE_free(asn1_TYPE_descriptor_t *td, void *sptr, int contents_only) {
|
|||
}
|
||||
|
||||
int
|
||||
SEQUENCE_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
||||
SEQUENCE_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
asn_app_consume_bytes_f *app_errlog, void *app_key) {
|
||||
int edx;
|
||||
|
||||
|
@ -713,7 +712,7 @@ SEQUENCE_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
|||
* Iterate over structure members and check their validity.
|
||||
*/
|
||||
for(edx = 0; edx < td->elements_count; edx++) {
|
||||
asn1_TYPE_member_t *elm = &td->elements[edx];
|
||||
asn_TYPE_member_t *elm = &td->elements[edx];
|
||||
const void *memb_ptr;
|
||||
|
||||
if(elm->flags & ATF_POINTER) {
|
||||
|
|
|
@ -7,17 +7,17 @@
|
|||
|
||||
#include <asn_application.h>
|
||||
|
||||
typedef struct asn1_SEQUENCE_specifics_s {
|
||||
typedef struct asn_SEQUENCE_specifics_s {
|
||||
/*
|
||||
* Target structure description.
|
||||
*/
|
||||
int struct_size; /* Size of the target structure. */
|
||||
int ctx_offset; /* Offset of the ber_dec_ctx_t member */
|
||||
int ctx_offset; /* Offset of the asn_struct_ctx_t member */
|
||||
|
||||
/*
|
||||
* Tags to members mapping table (sorted).
|
||||
*/
|
||||
asn1_TYPE_tag2member_t *tag2el;
|
||||
asn_TYPE_tag2member_t *tag2el;
|
||||
int tag2el_count;
|
||||
|
||||
/*
|
||||
|
@ -25,7 +25,7 @@ typedef struct asn1_SEQUENCE_specifics_s {
|
|||
*/
|
||||
int ext_after; /* Extensions start after this member */
|
||||
int ext_before; /* Extensions stop before this member */
|
||||
} asn1_SEQUENCE_specifics_t;
|
||||
} asn_SEQUENCE_specifics_t;
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -10,10 +10,10 @@
|
|||
* The DER encoder of the SEQUENCE OF type.
|
||||
*/
|
||||
asn_enc_rval_t
|
||||
SEQUENCE_OF_encode_der(asn1_TYPE_descriptor_t *td, void *ptr,
|
||||
SEQUENCE_OF_encode_der(asn_TYPE_descriptor_t *td, void *ptr,
|
||||
int tag_mode, ber_tlv_tag_t tag,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn1_TYPE_member_t *elm = td->elements;
|
||||
asn_TYPE_member_t *elm = td->elements;
|
||||
A_SEQUENCE_OF(void) *list;
|
||||
size_t computed_size = 0;
|
||||
ssize_t encoding_size = 0;
|
||||
|
@ -84,12 +84,12 @@ SEQUENCE_OF_encode_der(asn1_TYPE_descriptor_t *td, void *ptr,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
SEQUENCE_OF_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
SEQUENCE_OF_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn_enc_rval_t er;
|
||||
asn1_SET_OF_specifics_t *specs = (asn1_SET_OF_specifics_t *)td->specifics;
|
||||
asn1_TYPE_member_t *element = td->elements;
|
||||
asn_SET_OF_specifics_t *specs = (asn_SET_OF_specifics_t *)td->specifics;
|
||||
asn_TYPE_member_t *element = td->elements;
|
||||
A_SEQUENCE_OF(void) *list;
|
||||
const char *mname = specs->as_XMLValueList
|
||||
? 0 : ((*element->name) ? element->name : element->type->name);
|
||||
|
|
|
@ -70,8 +70,8 @@
|
|||
*/
|
||||
static int
|
||||
_t2e_cmp(const void *ap, const void *bp) {
|
||||
const asn1_TYPE_tag2member_t *a = (const asn1_TYPE_tag2member_t *)ap;
|
||||
const asn1_TYPE_tag2member_t *b = (const asn1_TYPE_tag2member_t *)bp;
|
||||
const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap;
|
||||
const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp;
|
||||
|
||||
int a_class = BER_TAG_CLASS(a->el_tag);
|
||||
int b_class = BER_TAG_CLASS(b->el_tag);
|
||||
|
@ -97,22 +97,21 @@ _t2e_cmp(const void *ap, const void *bp) {
|
|||
* The decoder of the SET type.
|
||||
*/
|
||||
ber_dec_rval_t
|
||||
SET_decode_ber(asn1_TYPE_descriptor_t *td,
|
||||
SET_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
|
||||
void **struct_ptr, void *ptr, size_t size, int tag_mode) {
|
||||
/*
|
||||
* Bring closer parts of structure description.
|
||||
*/
|
||||
asn1_SET_specifics_t *specs = (asn1_SET_specifics_t *)td->specifics;
|
||||
asn1_TYPE_member_t *elements = td->elements;
|
||||
asn_SET_specifics_t *specs = (asn_SET_specifics_t *)td->specifics;
|
||||
asn_TYPE_member_t *elements = td->elements;
|
||||
|
||||
/*
|
||||
* Parts of the structure being constructed.
|
||||
*/
|
||||
void *st = *struct_ptr; /* Target structure. */
|
||||
ber_dec_ctx_t *ctx; /* Decoder context */
|
||||
asn_struct_ctx_t *ctx; /* Decoder context */
|
||||
|
||||
ber_tlv_tag_t tlv_tag; /* T from TLV */
|
||||
//ber_tlv_len_t tlv_len; /* L from TLV */
|
||||
ber_dec_rval_t rval; /* Return code from subparsers */
|
||||
|
||||
ssize_t consumed_myself = 0; /* Consumed bytes from ptr */
|
||||
|
@ -133,7 +132,7 @@ SET_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
/*
|
||||
* Restore parsing context.
|
||||
*/
|
||||
ctx = (ber_dec_ctx_t *)((char *)st + specs->ctx_offset);
|
||||
ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
|
||||
|
||||
/*
|
||||
* Start to parse where left previously
|
||||
|
@ -146,7 +145,7 @@ SET_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
* perfectly fits our expectations.
|
||||
*/
|
||||
|
||||
rval = ber_check_tags(td, ctx, ptr, size,
|
||||
rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size,
|
||||
tag_mode, 1, &ctx->left, 0);
|
||||
if(rval.code != RC_OK) {
|
||||
ASN_DEBUG("%s tagging check failed: %d",
|
||||
|
@ -235,8 +234,8 @@ SET_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
* but is not strongly anticipated either.
|
||||
*/
|
||||
} else {
|
||||
asn1_TYPE_tag2member_t *t2m;
|
||||
asn1_TYPE_tag2member_t key;
|
||||
asn_TYPE_tag2member_t *t2m;
|
||||
asn_TYPE_tag2member_t key;
|
||||
|
||||
key.el_tag = tlv_tag;
|
||||
(void *)t2m = bsearch(&key,
|
||||
|
@ -312,7 +311,7 @@ SET_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
/*
|
||||
* Invoke the member fetch routine according to member's type
|
||||
*/
|
||||
rval = elements[edx].type->ber_decoder(
|
||||
rval = elements[edx].type->ber_decoder(opt_codec_ctx,
|
||||
elements[edx].type,
|
||||
memb_ptr2, ptr, LEFT,
|
||||
elements[edx].tag_mode);
|
||||
|
@ -435,14 +434,14 @@ SET_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
* The DER encoder of the SET type.
|
||||
*/
|
||||
asn_enc_rval_t
|
||||
SET_encode_der(asn1_TYPE_descriptor_t *td,
|
||||
SET_encode_der(asn_TYPE_descriptor_t *td,
|
||||
void *ptr, int tag_mode, ber_tlv_tag_t tag,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn1_SET_specifics_t *specs = (asn1_SET_specifics_t *)td->specifics;
|
||||
asn_SET_specifics_t *specs = (asn_SET_specifics_t *)td->specifics;
|
||||
size_t computed_size = 0;
|
||||
asn_enc_rval_t my_erval;
|
||||
int t2m_build_own = (specs->tag2el_count != td->elements_count);
|
||||
asn1_TYPE_tag2member_t *t2m;
|
||||
asn_TYPE_tag2member_t *t2m;
|
||||
int t2m_count;
|
||||
ssize_t ret;
|
||||
int edx;
|
||||
|
@ -472,7 +471,7 @@ SET_encode_der(asn1_TYPE_descriptor_t *td,
|
|||
* Gather the length of the underlying members sequence.
|
||||
*/
|
||||
for(edx = 0; edx < td->elements_count; edx++) {
|
||||
asn1_TYPE_member_t *elm = &td->elements[edx];
|
||||
asn_TYPE_member_t *elm = &td->elements[edx];
|
||||
asn_enc_rval_t erval;
|
||||
void *memb_ptr;
|
||||
|
||||
|
@ -504,7 +503,7 @@ SET_encode_der(asn1_TYPE_descriptor_t *td,
|
|||
*/
|
||||
if(t2m_build_own) {
|
||||
t2m[t2m_count].el_no = edx;
|
||||
t2m[t2m_count].el_tag = asn1_TYPE_outmost_tag(
|
||||
t2m[t2m_count].el_tag = asn_TYPE_outmost_tag(
|
||||
elm->type, memb_ptr, elm->tag_mode, elm->tag);
|
||||
t2m_count++;
|
||||
} else {
|
||||
|
@ -548,7 +547,7 @@ SET_encode_der(asn1_TYPE_descriptor_t *td,
|
|||
* Encode all members.
|
||||
*/
|
||||
for(edx = 0; edx < td->elements_count; edx++) {
|
||||
asn1_TYPE_member_t *elm;
|
||||
asn_TYPE_member_t *elm;
|
||||
asn_enc_rval_t erval;
|
||||
void *memb_ptr;
|
||||
|
||||
|
@ -582,7 +581,7 @@ SET_encode_der(asn1_TYPE_descriptor_t *td,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
SET_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
SET_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn_enc_rval_t er;
|
||||
|
@ -596,7 +595,7 @@ SET_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
|
||||
for(edx = 0; edx < td->elements_count; edx++) {
|
||||
asn_enc_rval_t tmper;
|
||||
asn1_TYPE_member_t *elm = &td->elements[edx];
|
||||
asn_TYPE_member_t *elm = &td->elements[edx];
|
||||
void *memb_ptr;
|
||||
const char *mname = elm->name;
|
||||
unsigned int mlen = strlen(elm->name);
|
||||
|
@ -628,7 +627,7 @@ SET_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
}
|
||||
|
||||
int
|
||||
SET_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
SET_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
int edx;
|
||||
int ret;
|
||||
|
@ -641,7 +640,7 @@ SET_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
|||
return -1;
|
||||
|
||||
for(edx = 0; edx < td->elements_count; edx++) {
|
||||
asn1_TYPE_member_t *elm = &td->elements[edx];
|
||||
asn_TYPE_member_t *elm = &td->elements[edx];
|
||||
const void *memb_ptr;
|
||||
|
||||
if(elm->flags & ATF_POINTER) {
|
||||
|
@ -671,7 +670,7 @@ SET_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
|||
}
|
||||
|
||||
void
|
||||
SET_free(asn1_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
||||
SET_free(asn_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
||||
int edx;
|
||||
|
||||
if(!td || !ptr)
|
||||
|
@ -680,7 +679,7 @@ SET_free(asn1_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
|||
ASN_DEBUG("Freeing %s as SET", td->name);
|
||||
|
||||
for(edx = 0; edx < td->elements_count; edx++) {
|
||||
asn1_TYPE_member_t *elm = &td->elements[edx];
|
||||
asn_TYPE_member_t *elm = &td->elements[edx];
|
||||
void *memb_ptr;
|
||||
if(elm->flags & ATF_POINTER) {
|
||||
memb_ptr = *(void **)((char *)ptr + elm->memb_offset);
|
||||
|
@ -698,7 +697,7 @@ SET_free(asn1_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
|||
}
|
||||
|
||||
int
|
||||
SET_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
||||
SET_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
asn_app_consume_bytes_f *app_errlog, void *app_key) {
|
||||
int edx;
|
||||
|
||||
|
@ -713,7 +712,7 @@ SET_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
|||
* Iterate over structure members and check their validity.
|
||||
*/
|
||||
for(edx = 0; edx < td->elements_count; edx++) {
|
||||
asn1_TYPE_member_t *elm = &td->elements[edx];
|
||||
asn_TYPE_member_t *elm = &td->elements[edx];
|
||||
const void *memb_ptr;
|
||||
|
||||
if(elm->flags & ATF_POINTER) {
|
||||
|
|
|
@ -8,18 +8,18 @@
|
|||
#include <asn_application.h>
|
||||
|
||||
|
||||
typedef struct asn1_SET_specifics_s {
|
||||
typedef struct asn_SET_specifics_s {
|
||||
/*
|
||||
* Target structure description.
|
||||
*/
|
||||
int struct_size; /* Size of the target structure. */
|
||||
int ctx_offset; /* Offset of the ber_dec_ctx_t member */
|
||||
int ctx_offset; /* Offset of the asn_struct_ctx_t member */
|
||||
int pres_offset; /* Offset of _presence_map member */
|
||||
|
||||
/*
|
||||
* Tags to members mapping table (sorted).
|
||||
*/
|
||||
asn1_TYPE_tag2member_t *tag2el;
|
||||
asn_TYPE_tag2member_t *tag2el;
|
||||
int tag2el_count;
|
||||
|
||||
/*
|
||||
|
@ -27,7 +27,7 @@ typedef struct asn1_SET_specifics_s {
|
|||
*/
|
||||
int extensible; /* Whether SET is extensible */
|
||||
unsigned int *_mandatory_elements; /* Bitmask of mandatory ones */
|
||||
} asn1_SET_specifics_t;
|
||||
} asn_SET_specifics_t;
|
||||
|
||||
/*
|
||||
* A set specialized functions dealing with the SET type.
|
||||
|
|
|
@ -65,22 +65,21 @@
|
|||
* The decoder of the SET OF type.
|
||||
*/
|
||||
ber_dec_rval_t
|
||||
SET_OF_decode_ber(asn1_TYPE_descriptor_t *td,
|
||||
SET_OF_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
|
||||
void **struct_ptr, void *ptr, size_t size, int tag_mode) {
|
||||
/*
|
||||
* Bring closer parts of structure description.
|
||||
*/
|
||||
asn1_SET_OF_specifics_t *specs = (asn1_SET_OF_specifics_t *)td->specifics;
|
||||
asn1_TYPE_member_t *element = td->elements; /* Single one */
|
||||
asn_SET_OF_specifics_t *specs = (asn_SET_OF_specifics_t *)td->specifics;
|
||||
asn_TYPE_member_t *element = td->elements; /* Single one */
|
||||
|
||||
/*
|
||||
* Parts of the structure being constructed.
|
||||
*/
|
||||
void *st = *struct_ptr; /* Target structure. */
|
||||
ber_dec_ctx_t *ctx; /* Decoder context */
|
||||
asn_struct_ctx_t *ctx; /* Decoder context */
|
||||
|
||||
ber_tlv_tag_t tlv_tag; /* T from TLV */
|
||||
//ber_tlv_len_t tlv_len; /* L from TLV */
|
||||
ber_dec_rval_t rval; /* Return code from subparsers */
|
||||
|
||||
ssize_t consumed_myself = 0; /* Consumed bytes from ptr */
|
||||
|
@ -100,7 +99,7 @@ SET_OF_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
/*
|
||||
* Restore parsing context.
|
||||
*/
|
||||
ctx = (ber_dec_ctx_t *)((char *)st + specs->ctx_offset);
|
||||
ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset);
|
||||
|
||||
/*
|
||||
* Start to parse where left previously
|
||||
|
@ -113,7 +112,7 @@ SET_OF_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
* perfectly fits our expectations.
|
||||
*/
|
||||
|
||||
rval = ber_check_tags(td, ctx, ptr, size,
|
||||
rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size,
|
||||
tag_mode, 1, &ctx->left, 0);
|
||||
if(rval.code != RC_OK) {
|
||||
ASN_DEBUG("%s tagging check failed: %d",
|
||||
|
@ -206,8 +205,8 @@ SET_OF_decode_ber(asn1_TYPE_descriptor_t *td,
|
|||
/*
|
||||
* Invoke the member fetch routine according to member's type
|
||||
*/
|
||||
rval = element->type->ber_decoder(element->type,
|
||||
&ctx->ptr, ptr, LEFT, 0);
|
||||
rval = element->type->ber_decoder(opt_codec_ctx,
|
||||
element->type, &ctx->ptr, ptr, LEFT, 0);
|
||||
ASN_DEBUG("In %s SET OF %s code %d consumed %d",
|
||||
td->name, element->type->name,
|
||||
rval.code, (int)rval.consumed);
|
||||
|
@ -310,11 +309,11 @@ static int _el_buf_cmp(const void *ap, const void *bp) {
|
|||
* The DER encoder of the SET OF type.
|
||||
*/
|
||||
asn_enc_rval_t
|
||||
SET_OF_encode_der(asn1_TYPE_descriptor_t *td, void *ptr,
|
||||
SET_OF_encode_der(asn_TYPE_descriptor_t *td, void *ptr,
|
||||
int tag_mode, ber_tlv_tag_t tag,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn1_TYPE_member_t *elm = td->elements;
|
||||
asn1_TYPE_descriptor_t *elm_type = elm->type;
|
||||
asn_TYPE_member_t *elm = td->elements;
|
||||
asn_TYPE_descriptor_t *elm_type = elm->type;
|
||||
der_type_encoder_f *der_encoder = elm_type->der_encoder;
|
||||
A_SET_OF(void) *list;
|
||||
size_t computed_size = 0;
|
||||
|
@ -451,12 +450,12 @@ SET_OF_encode_der(asn1_TYPE_descriptor_t *td, void *ptr,
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
SET_OF_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
SET_OF_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
int ilevel, enum xer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn_enc_rval_t er;
|
||||
asn1_SET_OF_specifics_t *specs=(asn1_SET_OF_specifics_t *)td->specifics;
|
||||
asn1_TYPE_member_t *element = td->elements;
|
||||
asn_SET_OF_specifics_t *specs=(asn_SET_OF_specifics_t *)td->specifics;
|
||||
asn_TYPE_member_t *element = td->elements;
|
||||
A_SET_OF(void) *list;
|
||||
const char *mname = specs->as_XMLValueList
|
||||
? 0 : ((*element->name) ? element->name : element->type->name);
|
||||
|
@ -498,9 +497,9 @@ SET_OF_encode_xer(asn1_TYPE_descriptor_t *td, void *sptr,
|
|||
}
|
||||
|
||||
int
|
||||
SET_OF_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
SET_OF_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn1_TYPE_member_t *element = td->elements;
|
||||
asn_TYPE_member_t *element = td->elements;
|
||||
const A_SET_OF(void) *list;
|
||||
int ret;
|
||||
int i;
|
||||
|
@ -531,9 +530,9 @@ SET_OF_print(asn1_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
|||
}
|
||||
|
||||
void
|
||||
SET_OF_free(asn1_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
||||
SET_OF_free(asn_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
||||
if(td && ptr) {
|
||||
asn1_TYPE_member_t *element = td->elements;
|
||||
asn_TYPE_member_t *element = td->elements;
|
||||
A_SET_OF(void) *list;
|
||||
int i;
|
||||
|
||||
|
@ -558,9 +557,9 @@ SET_OF_free(asn1_TYPE_descriptor_t *td, void *ptr, int contents_only) {
|
|||
}
|
||||
|
||||
int
|
||||
SET_OF_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
|
||||
SET_OF_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
asn_app_consume_bytes_f *app_errlog, void *app_key) {
|
||||
asn1_TYPE_member_t *element = td->elements;
|
||||
asn_TYPE_member_t *element = td->elements;
|
||||
asn_constr_check_f *constr;
|
||||
const A_SET_OF(void) *list;
|
||||
int i;
|
||||
|
|
|
@ -7,16 +7,16 @@
|
|||
|
||||
#include <asn_application.h>
|
||||
|
||||
typedef struct asn1_SET_OF_specifics_s {
|
||||
typedef struct asn_SET_OF_specifics_s {
|
||||
/*
|
||||
* Target structure description.
|
||||
*/
|
||||
int struct_size; /* Size of the target structure. */
|
||||
int ctx_offset; /* Offset of the ber_dec_ctx_t member */
|
||||
int ctx_offset; /* Offset of the asn_struct_ctx_t member */
|
||||
|
||||
/* XER-specific stuff */
|
||||
int as_XMLValueList; /* The member type must be encoded like this */
|
||||
} asn1_SET_OF_specifics_t;
|
||||
} asn_SET_OF_specifics_t;
|
||||
|
||||
/*
|
||||
* A set specialized functions dealing with the SET OF type.
|
||||
|
|
|
@ -17,7 +17,7 @@ static asn_app_consume_bytes_f _print2fp;
|
|||
* Return the outmost tag of the type.
|
||||
*/
|
||||
ber_tlv_tag_t
|
||||
asn1_TYPE_outmost_tag(asn1_TYPE_descriptor_t *type_descriptor,
|
||||
asn_TYPE_outmost_tag(asn_TYPE_descriptor_t *type_descriptor,
|
||||
const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag) {
|
||||
|
||||
if(tag_mode)
|
||||
|
@ -33,7 +33,7 @@ asn1_TYPE_outmost_tag(asn1_TYPE_descriptor_t *type_descriptor,
|
|||
* Print the target language's structure in human readable form.
|
||||
*/
|
||||
int
|
||||
asn_fprint(FILE *stream, asn1_TYPE_descriptor_t *td, const void *struct_ptr) {
|
||||
asn_fprint(FILE *stream, asn_TYPE_descriptor_t *td, const void *struct_ptr) {
|
||||
if(!stream) stream = stdout;
|
||||
if(!td || !struct_ptr) {
|
||||
errno = EINVAL;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#include <constraints.h>
|
||||
|
||||
int
|
||||
asn_generic_no_constraint(asn1_TYPE_descriptor_t *type_descriptor,
|
||||
asn_generic_no_constraint(asn_TYPE_descriptor_t *type_descriptor,
|
||||
const void *struct_ptr, asn_app_consume_bytes_f *cb, void *key) {
|
||||
|
||||
(void)type_descriptor; /* Unused argument */
|
||||
|
@ -15,7 +15,7 @@ asn_generic_no_constraint(asn1_TYPE_descriptor_t *type_descriptor,
|
|||
}
|
||||
|
||||
int
|
||||
asn_generic_unknown_constraint(asn1_TYPE_descriptor_t *type_descriptor,
|
||||
asn_generic_unknown_constraint(asn_TYPE_descriptor_t *type_descriptor,
|
||||
const void *struct_ptr, asn_app_consume_bytes_f *cb, void *key) {
|
||||
|
||||
(void)type_descriptor; /* Unused argument */
|
||||
|
@ -54,7 +54,7 @@ __fill_errbuf(const void *buffer, size_t size, void *app_key) {
|
|||
}
|
||||
|
||||
int
|
||||
asn_check_constraints(asn1_TYPE_descriptor_t *type_descriptor,
|
||||
asn_check_constraints(asn_TYPE_descriptor_t *type_descriptor,
|
||||
const void *struct_ptr, char *errbuf, size_t *errlen) {
|
||||
|
||||
if(errlen) {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
#include <asn_types.h> /* System-dependent types */
|
||||
|
||||
struct asn1_TYPE_descriptor_s; /* Forward declaration */
|
||||
struct asn_TYPE_descriptor_s; /* Forward declaration */
|
||||
|
||||
/*
|
||||
* Validate the structure according to the ASN.1 constraints.
|
||||
|
@ -18,7 +18,7 @@ struct asn1_TYPE_descriptor_s; /* Forward declaration */
|
|||
* to encode an error message (properly 0-terminated).
|
||||
*/
|
||||
int
|
||||
asn_check_constraints(struct asn1_TYPE_descriptor_s *type_descriptor,
|
||||
asn_check_constraints(struct asn_TYPE_descriptor_s *type_descriptor,
|
||||
const void *struct_ptr, /* Target language's structure */
|
||||
char *errbuf, /* Returned error description */
|
||||
size_t *errlen /* Length of the error description */
|
||||
|
@ -29,7 +29,7 @@ asn_check_constraints(struct asn1_TYPE_descriptor_s *type_descriptor,
|
|||
* associated with every type descriptor.
|
||||
*/
|
||||
typedef int (asn_constr_check_f)(
|
||||
struct asn1_TYPE_descriptor_s *type_descriptor,
|
||||
struct asn_TYPE_descriptor_s *type_descriptor,
|
||||
const void *struct_ptr,
|
||||
asn_app_consume_bytes_f *optional_app_errlog, /* Log the error */
|
||||
void *optional_app_key /* Opaque key passed to app_errlog */
|
||||
|
|
|
@ -13,7 +13,7 @@ static ssize_t der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len,
|
|||
* The DER encoder of any type.
|
||||
*/
|
||||
asn_enc_rval_t
|
||||
der_encode(asn1_TYPE_descriptor_t *type_descriptor, void *struct_ptr,
|
||||
der_encode(asn_TYPE_descriptor_t *type_descriptor, void *struct_ptr,
|
||||
asn_app_consume_bytes_f *consume_bytes, void *app_key) {
|
||||
|
||||
ASN_DEBUG("DER encoder invoked for %s",
|
||||
|
@ -32,7 +32,7 @@ der_encode(asn1_TYPE_descriptor_t *type_descriptor, void *struct_ptr,
|
|||
* Write out leading TL[v] sequence according to the type definition.
|
||||
*/
|
||||
ssize_t
|
||||
der_write_tags(asn1_TYPE_descriptor_t *sd,
|
||||
der_write_tags(asn_TYPE_descriptor_t *sd,
|
||||
size_t struct_length,
|
||||
int tag_mode, int last_tag_form,
|
||||
ber_tlv_tag_t tag, /* EXPLICIT or IMPLICIT tag */
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
|
||||
#include <asn_application.h>
|
||||
|
||||
struct asn1_TYPE_descriptor_s; /* Forward declaration */
|
||||
struct asn_TYPE_descriptor_s; /* Forward declaration */
|
||||
|
||||
/*
|
||||
* The DER encoder of any type. May be invoked by the application.
|
||||
*/
|
||||
asn_enc_rval_t der_encode(struct asn1_TYPE_descriptor_s *type_descriptor,
|
||||
asn_enc_rval_t der_encode(struct asn_TYPE_descriptor_s *type_descriptor,
|
||||
void *struct_ptr, /* Structure to be encoded */
|
||||
asn_app_consume_bytes_f *consume_bytes_cb,
|
||||
void *app_key /* Arbitrary callback argument */
|
||||
|
@ -22,7 +22,7 @@ asn_enc_rval_t der_encode(struct asn1_TYPE_descriptor_s *type_descriptor,
|
|||
* Type of the generic DER encoder.
|
||||
*/
|
||||
typedef asn_enc_rval_t (der_type_encoder_f)(
|
||||
struct asn1_TYPE_descriptor_s *type_descriptor,
|
||||
struct asn_TYPE_descriptor_s *type_descriptor,
|
||||
void *struct_ptr, /* Structure to be encoded */
|
||||
int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */
|
||||
ber_tlv_tag_t tag,
|
||||
|
@ -39,7 +39,7 @@ typedef asn_enc_rval_t (der_type_encoder_f)(
|
|||
* Write out leading TL[v] sequence according to the type definition.
|
||||
*/
|
||||
ssize_t der_write_tags(
|
||||
struct asn1_TYPE_descriptor_s *type_descriptor,
|
||||
struct asn_TYPE_descriptor_s *type_descriptor,
|
||||
size_t struct_length,
|
||||
int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */
|
||||
int last_tag_form, /* {0,!0}: prim, constructed */
|
||||
|
|
|
@ -98,7 +98,7 @@ main(int ac, char **av) {
|
|||
*/
|
||||
|
||||
asn_enc_rval_t
|
||||
OCTET_STRING_encode_der(asn1_TYPE_descriptor_t *td, void *ptr, int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
OCTET_STRING_encode_der(asn_TYPE_descriptor_t *td, void *ptr, int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn_enc_rval_t erval;
|
||||
|
||||
(void)td;
|
||||
|
@ -112,7 +112,7 @@ OCTET_STRING_encode_der(asn1_TYPE_descriptor_t *td, void *ptr, int tag_mode, ber
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
OCTET_STRING_encode_xer_ascii(asn1_TYPE_descriptor_t *td, void *ptr, int ilevel, enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
OCTET_STRING_encode_xer_ascii(asn_TYPE_descriptor_t *td, void *ptr, int ilevel, enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn_enc_rval_t erval;
|
||||
|
||||
(void)td;
|
||||
|
|
|
@ -38,14 +38,14 @@ check(uint8_t *buf, int size, long check_long, int check_ret) {
|
|||
}
|
||||
printf("]: ");
|
||||
|
||||
ret = asn1_INTEGER2long(&val, &rlong);
|
||||
ret = asn_INTEGER2long(&val, &rlong);
|
||||
printf(" (%ld, %d) vs (%ld, %d)\n",
|
||||
rlong, ret, check_long, check_ret);
|
||||
assert(ret == check_ret);
|
||||
assert(rlong == check_long);
|
||||
|
||||
shared_scratch_start = scratch;
|
||||
ret = INTEGER_print(&asn1_DEF_INTEGER, &val, 0, _print2buf, scratch);
|
||||
ret = INTEGER_print(&asn_DEF_INTEGER, &val, 0, _print2buf, scratch);
|
||||
assert(shared_scratch_start < scratch + sizeof(scratch));
|
||||
assert(ret == 0);
|
||||
ret = snprintf(verify, sizeof(verify), "%ld", check_long);
|
||||
|
|
|
@ -31,7 +31,7 @@ check_OID(uint8_t *buf, size_t len, int *ck_buf, int ck_len) {
|
|||
printf("}\n");
|
||||
|
||||
oid = NULL;
|
||||
rval = ber_decode(&asn1_DEF_OBJECT_IDENTIFIER, (void *)&oid, buf, len);
|
||||
rval = ber_decode(0, &asn_DEF_OBJECT_IDENTIFIER, (void *)&oid, buf, len);
|
||||
assert(rval.code == RC_OK);
|
||||
|
||||
assert(oid->size == (ssize_t)len - 2);
|
||||
|
@ -40,7 +40,7 @@ check_OID(uint8_t *buf, size_t len, int *ck_buf, int ck_len) {
|
|||
* Print the contents for visual debugging.
|
||||
*/
|
||||
printf("OBJECT_IDENTIFIER_print() => ");
|
||||
OBJECT_IDENTIFIER_print(&asn1_DEF_OBJECT_IDENTIFIER, oid, 0, _print, 0);
|
||||
OBJECT_IDENTIFIER_print(&asn_DEF_OBJECT_IDENTIFIER, oid, 0, _print, 0);
|
||||
printf("\n");
|
||||
|
||||
memset(arcs, 'A', sizeof(arcs));
|
||||
|
@ -78,7 +78,7 @@ check_ROID(uint8_t *buf, size_t len, int *ck_buf, int ck_len) {
|
|||
printf("}\n");
|
||||
|
||||
oid = NULL;
|
||||
rval = ber_decode(&asn1_DEF_RELATIVE_OID, (void *)&oid, buf, len);
|
||||
rval = ber_decode(0, &asn_DEF_RELATIVE_OID, (void *)&oid, buf, len);
|
||||
assert(rval.code == RC_OK);
|
||||
|
||||
assert(oid->size == (ssize_t)len - 2);
|
||||
|
@ -87,7 +87,7 @@ check_ROID(uint8_t *buf, size_t len, int *ck_buf, int ck_len) {
|
|||
* Print the contents for visual debugging.
|
||||
*/
|
||||
printf("RELATIVE_OID_print() => ");
|
||||
RELATIVE_OID_print(&asn1_DEF_RELATIVE_OID, oid, 0, _print, 0);
|
||||
RELATIVE_OID_print(&asn_DEF_RELATIVE_OID, oid, 0, _print, 0);
|
||||
printf("\n");
|
||||
|
||||
memset(arcs, 'A', sizeof(arcs));
|
||||
|
|
|
@ -69,7 +69,7 @@ check(REAL_t *rn, double orig_dbl, const char *sample, const char *canonical_sam
|
|||
printf("%02x", *p);
|
||||
printf("]\n");
|
||||
|
||||
ret = asn1_double2REAL(rn, orig_dbl);
|
||||
ret = asn_double2REAL(rn, orig_dbl);
|
||||
assert(ret == 0);
|
||||
|
||||
printf("converted into [");
|
||||
|
@ -77,7 +77,7 @@ check(REAL_t *rn, double orig_dbl, const char *sample, const char *canonical_sam
|
|||
printf("%02x", *p);
|
||||
printf("]: %d\n", rn->size);
|
||||
|
||||
ret = asn1_REAL2double(rn, &val);
|
||||
ret = asn_REAL2double(rn, &val);
|
||||
assert(ret == 0);
|
||||
|
||||
printf("and back to double: [");
|
||||
|
@ -114,7 +114,7 @@ check_buf(uint8_t *buf, size_t bufsize, double verify, const char *sample, const
|
|||
rn.buf = 0;
|
||||
rn.size = 0;
|
||||
|
||||
ret = asn1_double2REAL(&rn, verify);
|
||||
ret = asn_double2REAL(&rn, verify);
|
||||
assert(ret == 0);
|
||||
|
||||
printf("canonical DER: [");
|
||||
|
@ -130,7 +130,7 @@ check_buf(uint8_t *buf, size_t bufsize, double verify, const char *sample, const
|
|||
printf("%02x", *p);
|
||||
printf("]\n");
|
||||
|
||||
ret = asn1_REAL2double(&rn, &val);
|
||||
ret = asn_REAL2double(&rn, &val);
|
||||
assert(ret == 0);
|
||||
|
||||
printf("%.12f vs %.12f\n", verify, val);
|
||||
|
|
|
@ -65,7 +65,7 @@ main(int ac, char **av) {
|
|||
*/
|
||||
|
||||
asn_enc_rval_t
|
||||
OCTET_STRING_encode_der(asn1_TYPE_descriptor_t *td, void *ptr, int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
OCTET_STRING_encode_der(asn_TYPE_descriptor_t *td, void *ptr, int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn_enc_rval_t erval;
|
||||
|
||||
(void)td;
|
||||
|
@ -79,7 +79,7 @@ OCTET_STRING_encode_der(asn1_TYPE_descriptor_t *td, void *ptr, int tag_mode, ber
|
|||
}
|
||||
|
||||
asn_enc_rval_t
|
||||
OCTET_STRING_encode_xer_ascii(asn1_TYPE_descriptor_t *td, void *ptr, int ilevel, enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
OCTET_STRING_encode_xer_ascii(asn_TYPE_descriptor_t *td, void *ptr, int ilevel, enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn_enc_rval_t erval;
|
||||
|
||||
(void)td;
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
* The XER encoder of any type. May be invoked by the application.
|
||||
*/
|
||||
asn_enc_rval_t
|
||||
xer_encode(asn1_TYPE_descriptor_t *td, void *sptr,
|
||||
xer_encode(asn_TYPE_descriptor_t *td, void *sptr,
|
||||
enum xer_encoder_flags_e xer_flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn_enc_rval_t er, tmper;
|
||||
|
@ -56,7 +56,7 @@ xer__print2fp(const void *buffer, size_t size, void *app_key) {
|
|||
}
|
||||
|
||||
int
|
||||
xer_fprint(FILE *stream, asn1_TYPE_descriptor_t *td, void *sptr) {
|
||||
xer_fprint(FILE *stream, asn_TYPE_descriptor_t *td, void *sptr) {
|
||||
asn_enc_rval_t er;
|
||||
|
||||
if(!stream) stream = stdout;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
#include <asn_application.h>
|
||||
|
||||
struct asn1_TYPE_descriptor_s; /* Forward declaration */
|
||||
struct asn_TYPE_descriptor_s; /* Forward declaration */
|
||||
|
||||
/* Flags used by the xer_encode() and (*xer_type_encoder_f), defined below */
|
||||
enum xer_encoder_flags_e {
|
||||
|
@ -19,7 +19,7 @@ enum xer_encoder_flags_e {
|
|||
/*
|
||||
* The XER encoder of any type. May be invoked by the application.
|
||||
*/
|
||||
asn_enc_rval_t xer_encode(struct asn1_TYPE_descriptor_s *type_descriptor,
|
||||
asn_enc_rval_t xer_encode(struct asn_TYPE_descriptor_s *type_descriptor,
|
||||
void *struct_ptr, /* Structure to be encoded */
|
||||
enum xer_encoder_flags_e xer_flags,
|
||||
asn_app_consume_bytes_f *consume_bytes_cb,
|
||||
|
@ -34,13 +34,13 @@ asn_enc_rval_t xer_encode(struct asn1_TYPE_descriptor_s *type_descriptor,
|
|||
* -1: Problem printing the structure.
|
||||
* WARNING: No sensible errno value is returned.
|
||||
*/
|
||||
int xer_fprint(FILE *stream, struct asn1_TYPE_descriptor_s *td, void *sptr);
|
||||
int xer_fprint(FILE *stream, struct asn_TYPE_descriptor_s *td, void *sptr);
|
||||
|
||||
/*
|
||||
* Type of the generic XER encoder.
|
||||
*/
|
||||
typedef asn_enc_rval_t (xer_type_encoder_f)(
|
||||
struct asn1_TYPE_descriptor_s *type_descriptor,
|
||||
struct asn_TYPE_descriptor_s *type_descriptor,
|
||||
void *struct_ptr, /* Structure to be encoded */
|
||||
int ilevel, /* Level of indentation */
|
||||
enum xer_encoder_flags_e xer_flags,
|
||||
|
|
Loading…
Reference in New Issue