asn1c/libasn1parser/asn1p_expr2uclass.h

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 */