mirror of https://gerrit.osmocom.org/asn1c
93 lines
2.8 KiB
C
93 lines
2.8 KiB
C
#ifndef ASN1_PARSER_EXPR2UCLASS_H
|
|
#define ASN1_PARSER_EXPR2UCLASS_H
|
|
|
|
#ifndef __GNUC__
|
|
#define __attribute__(x) /* unused */
|
|
#endif
|
|
|
|
static int expr_type2uclass_value[ASN_EXPR_TYPE_MAX]
|
|
__attribute__ ((unused)) = {
|
|
[ ASN_BASIC_BOOLEAN ] = 1,
|
|
[ ASN_BASIC_INTEGER ] = 2,
|
|
[ ASN_BASIC_BIT_STRING ] = 3,
|
|
[ ASN_BASIC_OCTET_STRING ] = 4,
|
|
[ ASN_BASIC_NULL ] = 5,
|
|
[ ASN_BASIC_OBJECT_IDENTIFIER ] = 6,
|
|
[ ASN_STRING_ObjectDescriptor ] = 7,
|
|
[ ASN_BASIC_EXTERNAL ] = 8,
|
|
[ ASN_BASIC_REAL ] = 9,
|
|
[ ASN_BASIC_ENUMERATED ] = 10,
|
|
[ ASN_BASIC_EMBEDDED_PDV ] = 11,
|
|
[ ASN_STRING_UTF8String ] = 12,
|
|
[ ASN_BASIC_RELATIVE_OID ] = 13,
|
|
[ ASN_CONSTR_SEQUENCE ] = 16,
|
|
[ ASN_CONSTR_SEQUENCE_OF ] = 16,
|
|
[ ASN_CONSTR_SET ] = 17,
|
|
[ ASN_CONSTR_SET_OF ] = 17,
|
|
[ ASN_STRING_NumericString ] = 18,
|
|
[ ASN_STRING_PrintableString ] = 19,
|
|
[ ASN_STRING_TeletexString ] = 20,
|
|
[ ASN_STRING_T61String ] = 20,
|
|
[ ASN_STRING_VideotexString ] = 21,
|
|
[ ASN_STRING_IA5String ] = 22,
|
|
[ ASN_BASIC_UTCTime ] = 23,
|
|
[ ASN_BASIC_GeneralizedTime ] = 24,
|
|
[ ASN_STRING_GraphicString ] = 25,
|
|
[ ASN_STRING_VisibleString ] = 26,
|
|
[ ASN_STRING_ISO646String ] = 26,
|
|
[ ASN_STRING_GeneralString ] = 27,
|
|
[ ASN_STRING_UniversalString ] = 28,
|
|
[ ASN_BASIC_CHARACTER_STRING ] = 29,
|
|
[ ASN_STRING_BMPString ] = 30,
|
|
};
|
|
|
|
static enum asn1p_expr_type expr_utag2type[32] __attribute__ ((unused)) = {
|
|
[ 0 ] = 0, /* If zero length, end-of-content */
|
|
[ 1 ] = ASN_BASIC_BOOLEAN,
|
|
[ 2 ] = ASN_BASIC_INTEGER,
|
|
[ 3 ] = ASN_BASIC_BIT_STRING,
|
|
[ 4 ] = ASN_BASIC_OCTET_STRING,
|
|
[ 5 ] = ASN_BASIC_NULL,
|
|
[ 6 ] = ASN_BASIC_OBJECT_IDENTIFIER,
|
|
[ 7 ] = ASN_STRING_ObjectDescriptor,
|
|
[ 8 ] = ASN_BASIC_EXTERNAL,
|
|
[ 9 ] = ASN_BASIC_REAL,
|
|
[ 10 ] = ASN_BASIC_ENUMERATED,
|
|
[ 11 ] = ASN_BASIC_EMBEDDED_PDV,
|
|
[ 12 ] = ASN_STRING_UTF8String,
|
|
[ 13 ] = ASN_BASIC_RELATIVE_OID,
|
|
[ 14 ] = 0,
|
|
[ 15 ] = 0,
|
|
[ 16 ] = ASN_CONSTR_SEQUENCE, /* Or SEQUENCE OF */
|
|
[ 17 ] = ASN_CONSTR_SET, /* Or SET OF */
|
|
[ 18 ] = ASN_STRING_NumericString, /* " "|"0".."9" */
|
|
[ 19 ] = ASN_STRING_PrintableString,
|
|
[ 20 ] = ASN_STRING_TeletexString,
|
|
[ 21 ] = ASN_STRING_VideotexString,
|
|
[ 22 ] = ASN_STRING_IA5String,
|
|
[ 23 ] = ASN_BASIC_UTCTime,
|
|
[ 24 ] = ASN_BASIC_GeneralizedTime,
|
|
[ 25 ] = ASN_STRING_GraphicString,
|
|
[ 26 ] = ASN_STRING_VisibleString,
|
|
[ 27 ] = ASN_STRING_GeneralString,
|
|
[ 28 ] = ASN_STRING_UniversalString, /* 32-bit UCS-4 */
|
|
[ 29 ] = ASN_BASIC_CHARACTER_STRING,
|
|
[ 30 ] = ASN_STRING_BMPString, /* 16-bit UCS-2 */
|
|
};
|
|
|
|
/*
|
|
* Convert the [UNIVERSAL value] into the internal type or a string.
|
|
*/
|
|
#define ASN_UNIVERSAL_TAG2TYPE(utag) \
|
|
( \
|
|
(((int)(utag)) < 0 \
|
|
|| ((int)(utag)) >= (int)(sizeof(expr_utag2type) \
|
|
/ sizeof(expr_utag2type[0]))) \
|
|
? 0 \
|
|
: expr_utag2type[(int)(utag)] \
|
|
)
|
|
#define ASN_UNIVERSAL_TAG2STR(utag) \
|
|
ASN_EXPR_TYPE2STR(ASN_UNIVERSAL_TAG2TYPE(utag))
|
|
|
|
#endif /* ASN1_PARSER_EXPR2UCLASS_H */
|