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