Home | History | Annotate | Line # | Download | only in comp_match
      1 /*	$NetBSD: asn_to_syn_mr.c,v 1.2 2021/08/14 16:14:51 christos Exp $	*/
      2 
      3 #include <component.h>
      4 #include "asn.h"
      5 #include "componentlib.h"
      6 #include "certificate.h"
      7 
      8 AsnTypetoMatchingRuleTable directory_component_matching_table[] = {
      9 	"1.2.36.79672281.1.13.7",
     10 {
     11 	{ BASICTYPE_BOOLEAN,NULL,"1.3.6.1.4.1.1466.115.121.1.7", NULL },
     12         { BASICTYPE_INTEGER,NULL ,"1.3.6.1.4.1.1466.115.121.1.27", NULL },
     13         { BASICTYPE_BITSTRING,NULL ,"1.3.6.1.4.1.1466.115.121.1.6", NULL },
     14         { BASICTYPE_OCTETSTRING,NULL , "1.3.6.1.4.1.1466.115.121.1.40", NULL },
     15         { BASICTYPE_NULL,NULL , NULL, NULL },
     16         { BASICTYPE_OID,NULL ,"1.3.6.1.4.1.1466.115.121.1.38", NULL },
     17         { BASICTYPE_REAL,NULL , NULL, NULL },
     18         { BASICTYPE_ENUMERATED,NULL , NULL, NULL },
     19         { BASICTYPE_NUMERIC_STR, "numericStringMatch", "1.3.6.1.4.1.1466.115.121.1.36", NULL },
     20         { BASICTYPE_PRINTABLE_STR, "caseIgnoreMatch", "1.3.6.1.4.1.1466.115.121.1.44", NULL },
     21         { BASICTYPE_UNIVERSAL_STR, "caseIgnoreMatch" , NULL, NULL },
     22         { BASICTYPE_IA5_STR, "caseIgnoreMatch", "1.3.6.1.4.1.1466.115.121.1.26", NULL },
     23         { BASICTYPE_BMP_STR, "caseIgnoreMatch" , NULL, NULL },
     24         { BASICTYPE_UTF8_STR, "caseIgnoreMatch" , NULL, NULL },
     25         { BASICTYPE_UTCTIME, "uTCTimeMatch" , "1.3.6.1.4.1.1466.115.121.1.53", NULL },
     26         { BASICTYPE_GENERALIZEDTIME, "generalizedTimeMatch" ,"1.3.6.1.4.1.1466.115.121.1.24", NULL },
     27         { BASICTYPE_GRAPHIC_STR, "caseIgnoreMatch", NULL, NULL },
     28         { BASICTYPE_VISIBLE_STR, "caseIgnoreMatch", NULL, NULL },
     29         { BASICTYPE_GENERAL_STR, "caseIgnoreMatch", NULL, NULL },
     30         { BASICTYPE_OBJECTDESCRIPTOR, NULL , NULL, NULL },
     31         { BASICTYPE_VIDEOTEX_STR, "caseIgnoreMatch", NULL, NULL },
     32         { BASICTYPE_T61_STR, "caseIgnoreMatch", NULL, NULL },
     33         { BASICTYPE_OCTETCONTAINING, NULL , NULL, NULL },
     34         { BASICTYPE_BITCONTAINING, NULL , NULL, NULL },
     35         { BASICTYPE_RELATIVE_OID, NULL, "1.2.36.79672281.1.5.0", NULL },
     36         { RDNSequence, "distinguishedNameMatch" , NULL, NULL },
     37         { RelativeDistinguishedName, NULL , NULL, NULL },
     38         { TelephoneNumber, "telephoneNumberMatch" , "1.3.6.1.4.1.1466.115.121.1.50", NULL },
     39         { FacsimileTelephoneNumber__telephoneNumber, "telephoneNumberMatch","1.3.6.1.4.1.1466.115.121.1.22", NULL },
     40         { DirectoryString, "caseIgnoreMatch" ,"1.3.6.1.4.1.1466.115.121.1.15", NULL },
     41         { ASN_COMP_CERTIFICATE, NULL , "1.2.36.79672281.1.5.2" , NULL },
     42         { ASNTYPE_END , NULL , NULL, NULL }
     43 },
     44 	NULL
     45 };
     46 
     47 AsnTypetoSyntax asn_to_syntax_mapping_tbl[] = {
     48 { BASICTYPE_BOOLEAN,"Boolean","1.3.6.1.4.1.1466.115.121.1.7", NULL },
     49 { BASICTYPE_INTEGER,"Integer","1.3.6.1.4.1.1466.115.121.1.27", NULL },
     50 { BASICTYPE_BITSTRING,"Bit String","1.3.6.1.4.1.1466.115.121.1.6", NULL },
     51 { BASICTYPE_OCTETSTRING,"Octet String", "1.3.6.1.4.1.1466.115.121.1.40", NULL },
     52 { BASICTYPE_NULL,NULL, NULL, NULL },
     53 { BASICTYPE_OID,"OID","1.3.6.1.4.1.1466.115.121.1.38", NULL },
     54 { BASICTYPE_REAL,NULL, NULL, NULL },
     55 { BASICTYPE_ENUMERATED,"Integer", "1.3.6.1.4.1.1466.115.121.1.27", NULL },
     56 { BASICTYPE_NUMERIC_STR, "Numeric String", "1.3.6.1.4.1.1466.115.121.1.36", NULL },
     57 { BASICTYPE_PRINTABLE_STR, "Printable String", "1.3.6.1.4.1.1466.115.121.1.44", NULL },
     58 { BASICTYPE_UNIVERSAL_STR, NULL , NULL, NULL },
     59 { BASICTYPE_IA5_STR, "IA5 String", "1.3.6.1.4.1.1466.115.121.1.26", NULL },
     60 { BASICTYPE_BMP_STR, NULL , NULL, NULL },
     61 { BASICTYPE_UTF8_STR, "Directory String" , "1.3.6.1.4.1.1466.115.121.1.15", NULL },
     62 { BASICTYPE_UTCTIME, "UTC Time" , "1.3.6.1.4.1.1466.115.121.1.53", NULL },
     63 { BASICTYPE_GENERALIZEDTIME, "Generalized Time" ,"1.3.6.1.4.1.1466.115.121.1.24", NULL },
     64 { BASICTYPE_GRAPHIC_STR, NULL, NULL, NULL },
     65 { BASICTYPE_VISIBLE_STR, "Directory String", "1.3.6.1.4.1.1466.115.121.1.15", NULL },
     66 { BASICTYPE_GENERAL_STR, NULL, NULL, NULL },
     67 { BASICTYPE_OBJECTDESCRIPTOR, "Object Class Description", "1.3.6.1.4.1.1466.115.121.1.37", NULL },
     68 { BASICTYPE_VIDEOTEX_STR, NULL, NULL, NULL },
     69 { BASICTYPE_T61_STR, NULL, NULL, NULL },
     70 { BASICTYPE_OCTETCONTAINING, NULL , NULL, NULL },
     71 { BASICTYPE_BITCONTAINING, NULL , NULL, NULL },
     72 { BASICTYPE_RELATIVE_OID, "OID", "1.3.6.1.4.1.1466.115.121.1.38", NULL },
     73 { BASICTYPE_ANY, NULL, NULL, NULL },
     74 { COMPOSITE_ASN1_TYPE, NULL , NULL, NULL },
     75 { RDNSequence, "Distinguished Name" , "1.3.6.1.4.1.1466.115.121.1.12", NULL },
     76 { RelativeDistinguishedName, "RDN", "1.2.36.79672281.1.5.0", NULL },
     77 { TelephoneNumber, "Telephone Number" , "1.3.6.1.4.1.1466.115.121.1.50", NULL },
     78 { FacsimileTelephoneNumber__telephoneNumber, "Facsimile Telephone Number","1.3.6.1.4.1.1466.115.121.1.22", NULL },
     79 { DirectoryString, "Directory String" ,"1.3.6.1.4.1.1466.115.121.1.15", NULL },
     80 { ASN_COMP_CERTIFICATE, "componentCertificate", "1.2.36.79672281.1.5.2" , NULL },
     81 { ASNTYPE_END , NULL , NULL, NULL }
     82 };
     83 
     84 /*
     85  * This table describes relationship between an ASN.1 type and its
     86  * potential matching rules such as equality, approx, ordering, and substring
     87  * Based on the description of this table, the following ComponentType
     88  * table is initialized
     89  */
     90 AsnTypetoCompMatchingRule asntype_to_compMR_mapping_tbl[] = {
     91 { BASICTYPE_BOOLEAN, "booleanMatch", NULL, NULL, NULL },
     92 { BASICTYPE_INTEGER, "integerMatch", NULL, "integerOrderingMatch", NULL },
     93 { BASICTYPE_BITSTRING, "bitStringMatch", NULL, NULL, NULL },
     94 { BASICTYPE_OCTETSTRING, "octetStringMatch", NULL, "octetStringOrderingMatch", NULL },
     95 { BASICTYPE_NULL, NULL, NULL, NULL, NULL },
     96 { BASICTYPE_OID, "objectIdentifierMatch", NULL, NULL, NULL },
     97 { BASICTYPE_REAL,  NULL, NULL, NULL, NULL },
     98 { BASICTYPE_ENUMERATED,  "integerMatch", NULL, "integerOrderingMatch", NULL },
     99 { BASICTYPE_NUMERIC_STR,  "numericStringMatch", NULL, "numericStringOrderingMatch", "numericStringSubstringsMatch"},
    100 { BASICTYPE_PRINTABLE_STR, "caseIgnoreMatch", "directoryStringApproxMatch", "caseIgnoreOrderingMatch", "caseIgnoreSubstringsMatch" },
    101 { BASICTYPE_UNIVERSAL_STR, "caseIgnoreMatch", "directoryStringApproxMatch", "caseIgnoreOrderingMatch", "caseIgnoreSubstringsMatch" },
    102 { BASICTYPE_IA5_STR, "caseIgnoreMatch", "IA5StringApproxMatch", "caseIgnoreOrderingMatch", "caseIgnoreSubstringsMatch" },
    103 { BASICTYPE_BMP_STR, "caseIgnoreMatch", "directoryStringApproxMatch", "caseIgnoreOrderingMatch", "caseIgnoreSubstringsMatch" },
    104 { BASICTYPE_UTF8_STR, "caseIgnoreMatch", "directoryStringApproxMatch", "caseIgnoreOrderingMatch", "caseIgnoreSubstringsMatch" },
    105 { BASICTYPE_UTCTIME, NULL, NULL, NULL, NULL },
    106 { BASICTYPE_GENERALIZEDTIME,  NULL, NULL, NULL, NULL },
    107 { BASICTYPE_GRAPHIC_STR, NULL, NULL, NULL, NULL },
    108 { BASICTYPE_VISIBLE_STR, "caseIgnoreMatch", "directoryStringApproxMatch", "caseIgnoreOrderingMatch", "caseIgnoreSubstringsMatch" },
    109 { BASICTYPE_GENERAL_STR, NULL, NULL, NULL, NULL },
    110 { BASICTYPE_OBJECTDESCRIPTOR, "objectIdentifierFirstComponentMatch", NULL, NULL, NULL },
    111 { BASICTYPE_VIDEOTEX_STR, NULL, NULL, NULL, NULL },
    112 { BASICTYPE_T61_STR, NULL, NULL, NULL, NULL },
    113 { BASICTYPE_OCTETCONTAINING,  NULL, NULL, NULL, NULL },
    114 { BASICTYPE_BITCONTAINING,  NULL, NULL, NULL, NULL },
    115 { BASICTYPE_RELATIVE_OID,  "objectIdentifierFirstComponentMatch", NULL, NULL, NULL },
    116 { BASICTYPE_ANY, NULL, NULL, NULL, NULL },
    117 { COMPOSITE_ASN1_TYPE,  NULL, NULL, NULL, NULL },
    118 { RDNSequence,  "distinguishedNameMatch", NULL, NULL, NULL },
    119 { RelativeDistinguishedName, "rdnMatch" , NULL, NULL, NULL },
    120 { TelephoneNumber, NULL, NULL, NULL, NULL },
    121 { FacsimileTelephoneNumber__telephoneNumber,  "caseIgnoreMatch", "directoryStringApproxMatch", "caseIgnoreOrderingMatch", "caseIgnoreSubstringsMatch" },
    122 { DirectoryString, "caseIgnoreMatch", "directoryStringApproxMatch", "caseIgnoreOrderingMatch", "caseIgnoreSubstringsMatch"},
    123 { ASN_COMP_CERTIFICATE, "componentFilterMatch", NULL, NULL, NULL },
    124 { ASNTYPE_END, NULL, NULL, NULL, NULL }
    125 };
    126 
    127 /*
    128  * This table maps an ASN type to a corresponding ComponentType which has
    129  * equivalent contents of an existing AttributeType
    130  */
    131 AsnTypetoCompType asntype_to_compType_mapping_tbl[] = {
    132 { BASICTYPE_BOOLEAN,{}},
    133 { BASICTYPE_INTEGER, {}},
    134 { BASICTYPE_BITSTRING, {}},
    135 { BASICTYPE_OCTETSTRING, {}},
    136 { BASICTYPE_NULL, {}},
    137 { BASICTYPE_OID, {}},
    138 { BASICTYPE_REAL, {}},
    139 { BASICTYPE_ENUMERATED, {}},
    140 { BASICTYPE_NUMERIC_STR, {}},
    141 { BASICTYPE_PRINTABLE_STR, {}},
    142 { BASICTYPE_UNIVERSAL_STR, {}},
    143 { BASICTYPE_IA5_STR, {}},
    144 { BASICTYPE_BMP_STR, {}},
    145 { BASICTYPE_UTF8_STR, {}},
    146 { BASICTYPE_UTCTIME, {}},
    147 { BASICTYPE_GENERALIZEDTIME, {}},
    148 { BASICTYPE_GRAPHIC_STR, {}},
    149 { BASICTYPE_VISIBLE_STR, {}},
    150 { BASICTYPE_GENERAL_STR,{}},
    151 { BASICTYPE_OBJECTDESCRIPTOR, {}},
    152 { BASICTYPE_VIDEOTEX_STR, {}},
    153 { BASICTYPE_T61_STR, {}},
    154 { BASICTYPE_OCTETCONTAINING, {}},
    155 { BASICTYPE_BITCONTAINING, {}},
    156 { BASICTYPE_RELATIVE_OID, {}},
    157 { BASICTYPE_ANY, {}},
    158 { COMPOSITE_ASN1_TYPE, {}},
    159 { RDNSequence, {}},
    160 { RelativeDistinguishedName, {}},
    161 { TelephoneNumber, {}},
    162 { FacsimileTelephoneNumber__telephoneNumber, {}},
    163 { DirectoryString, {}},
    164 { ASN_COMP_CERTIFICATE, {}},
    165 { ASNTYPE_END , {}}
    166 };
    167 
    168 AsnTypetoCompDesc asntype_to_compdesc_mapping_tbl[] = {
    169 { BASICTYPE_BOOLEAN, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_BOOLEAN,
    170 	(encoder_func*)NULL,(encoder_func*)GEncComponentBool,(encoder_func*)NULL,
    171 	(gser_decoder_func*)GDecComponentBool,(ber_decoder_func*)BDecComponentBool,
    172 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentBool}},
    173 { BASICTYPE_INTEGER, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_INTEGER,
    174 	(encoder_func*)NULL,(encoder_func*)GEncComponentInt,(encoder_func*)NULL,
    175 	(gser_decoder_func*)GDecComponentInt,(ber_decoder_func*)BDecComponentInt,
    176 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentInt}},
    177 { BASICTYPE_BITSTRING, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_BITSTRING,
    178 	(encoder_func*)NULL,(encoder_func*)GEncComponentBits,(encoder_func*)NULL,
    179 	(gser_decoder_func*)GDecComponentBits,(ber_decoder_func*)BDecComponentBits,
    180 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentBits}},
    181 { BASICTYPE_OCTETSTRING, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_OCTETSTRING,
    182 	(encoder_func*)NULL,(encoder_func*)GEncComponentOcts,(encoder_func*)NULL,
    183 	(gser_decoder_func*)GDecComponentOcts,(ber_decoder_func*)BDecComponentOcts,
    184 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentOcts}},
    185 { BASICTYPE_NULL, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_NULL,
    186 	(encoder_func*)NULL,(encoder_func*)GEncComponentNull,(encoder_func*)NULL,
    187 	(gser_decoder_func*)GDecComponentNull,(ber_decoder_func*)BDecComponentNull,
    188 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentNull}},
    189 { BASICTYPE_OID, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_OID,
    190 	(encoder_func*)NULL,(encoder_func*)GEncComponentOid,(encoder_func*)NULL,
    191 	(gser_decoder_func*)GDecComponentOid,(ber_decoder_func*)BDecComponentOid,
    192 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentOid}},
    193 { BASICTYPE_REAL, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_REAL,
    194 	(encoder_func*)NULL,(encoder_func*)GEncComponentReal,(encoder_func*)NULL,
    195 	(gser_decoder_func*)GDecComponentReal,(ber_decoder_func*)BDecComponentReal,
    196 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentReal}},
    197 { BASICTYPE_ENUMERATED, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_ENUMERATED,
    198 	(encoder_func*)NULL,(encoder_func*)GEncComponentEnum,(encoder_func*)NULL,
    199 	(gser_decoder_func*)GDecComponentEnum,(ber_decoder_func*)BDecComponentEnum,
    200 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentEnum}},
    201 { BASICTYPE_NUMERIC_STR, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_NUMERIC_STR,
    202 	(encoder_func*)NULL,(encoder_func*)GEncComponentNumericString,(encoder_func*)NULL,
    203 	(gser_decoder_func*)GDecComponentNumericString,(ber_decoder_func*)BDecComponentNumericString,
    204 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentNumericString}},
    205 { BASICTYPE_PRINTABLE_STR, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_PRINTABLE_STR,
    206 	(encoder_func*)NULL,(encoder_func*)GEncComponentPrintableString,(encoder_func*)NULL,
    207 	(gser_decoder_func*)GDecComponentPrintableString,(ber_decoder_func*)BDecComponentPrintableString,
    208 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentPrintableString}},
    209 { BASICTYPE_UNIVERSAL_STR, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_UNIVERSAL_STR,
    210 	(encoder_func*)NULL,(encoder_func*)GEncComponentUniversalString,(encoder_func*)NULL,
    211 	(gser_decoder_func*)GDecComponentUniversalString,(ber_decoder_func*)BDecComponentUniversalString,
    212 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentUniversalString}},
    213 { BASICTYPE_IA5_STR, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_IA5_STR,
    214 	(encoder_func*)NULL,(encoder_func*)GEncComponentIA5String,(encoder_func*)NULL,
    215 	(gser_decoder_func*)GDecComponentIA5String,(ber_decoder_func*)BDecComponentIA5String,
    216 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentIA5String}},
    217 { BASICTYPE_BMP_STR, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_BMP_STR,
    218 	(encoder_func*)NULL,(encoder_func*)GEncComponentBMPString,(encoder_func*)NULL,
    219 	(gser_decoder_func*)GDecComponentBMPString,(ber_decoder_func*)BDecComponentBMPString,
    220 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentBMPString}},
    221 { BASICTYPE_UTF8_STR, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_UTF8_STR,
    222 	(encoder_func*)NULL,(encoder_func*)GEncComponentUTF8String,(encoder_func*)NULL,
    223 	(gser_decoder_func*)GDecComponentUTF8String,(ber_decoder_func*)BDecComponentUTF8String,
    224 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentUTF8String}},
    225 { BASICTYPE_UTCTIME, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_UTCTIME,
    226 	(encoder_func*)NULL,(encoder_func*)GEncComponentUTCTime,(encoder_func*)NULL,
    227 	(gser_decoder_func*)GDecComponentUTCTime,(ber_decoder_func*)BDecComponentUTCTime,
    228 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentUTCTime}},
    229 { BASICTYPE_GENERALIZEDTIME, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_GENERALIZEDTIME,
    230 	(encoder_func*)NULL,(encoder_func*)GEncComponentUTCTime,(encoder_func*)NULL,
    231 	(gser_decoder_func*)GDecComponentUTCTime,(ber_decoder_func*)BDecComponentUTCTime,
    232 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentUTCTime}},
    233 { BASICTYPE_GRAPHIC_STR, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_GRAPHIC_STR,
    234 	(encoder_func*)NULL,(encoder_func*)GEncComponentPrintableString,(encoder_func*)NULL,
    235 	(gser_decoder_func*)GDecComponentPrintableString,(ber_decoder_func*)BDecComponentPrintableString,
    236 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentPrintableString}},
    237 { BASICTYPE_VISIBLE_STR, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_VISIBLE_STR,
    238 	(encoder_func*)NULL,(encoder_func*)GEncComponentVisibleString,(encoder_func*)NULL,
    239 	(gser_decoder_func*)GDecComponentVisibleString,(ber_decoder_func*)BDecComponentVisibleString,
    240 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentVisibleString}},
    241 { BASICTYPE_GENERAL_STR,{ -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_GENERAL_STR,
    242 	(encoder_func*)NULL,(encoder_func*)GEncComponentUTF8String,(encoder_func*)NULL,
    243 	(gser_decoder_func*)GDecComponentUTF8String,(ber_decoder_func*)BDecComponentUTF8String,
    244 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentUTF8String}},
    245 { BASICTYPE_OBJECTDESCRIPTOR, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_OBJECTDESCRIPTOR,
    246 	(encoder_func*)NULL,(encoder_func*)GEncComponentUTF8String,(encoder_func*)NULL,
    247 	(gser_decoder_func*)GDecComponentUTF8String,(ber_decoder_func*)BDecComponentUTF8String,
    248 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentUTF8String}},
    249 { BASICTYPE_VIDEOTEX_STR, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_VIDEOTEX_STR,
    250 	(encoder_func*)NULL,(encoder_func*)GEncComponentTeletexString,(encoder_func*)NULL,
    251 	(gser_decoder_func*)GDecComponentTeletexString,(ber_decoder_func*)BDecComponentTeletexString,
    252 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentTeletexString}},
    253 { BASICTYPE_T61_STR, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_T61_STR,
    254 	(encoder_func*)NULL,(encoder_func*)GEncComponentUTF8String,(encoder_func*)NULL,
    255 	(gser_decoder_func*)GDecComponentUTF8String,(ber_decoder_func*)BDecComponentUTF8String,
    256 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentUTF8String}},
    257 { BASICTYPE_OCTETCONTAINING, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_OCTETCONTAINING,
    258 	(encoder_func*)NULL,(encoder_func*)NULL,(encoder_func*)NULL,
    259 	(gser_decoder_func*)NULL,(ber_decoder_func*)NULL,
    260 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,NULL}},
    261 { BASICTYPE_BITCONTAINING, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_BITCONTAINING,
    262 	(encoder_func*)NULL,(encoder_func*)NULL,(encoder_func*)NULL,
    263 	(gser_decoder_func*)NULL,(ber_decoder_func*)NULL,
    264 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,NULL}},
    265 { BASICTYPE_RELATIVE_OID, { -1, NULL, {},{},0,ASN_BASIC,BASICTYPE_RELATIVE_OID,
    266 	(encoder_func*)NULL,(encoder_func*)GEncComponentRelativeOid,(encoder_func*)NULL,
    267 	(gser_decoder_func*)GDecComponentRelativeOid,(ber_decoder_func*)BDecComponentRelativeOid,
    268 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentRelativeOid}},
    269 { BASICTYPE_ANY, {}},
    270 { COMPOSITE_ASN1_TYPE, {}},
    271 { RDNSequence, { -1, NULL, {},{},0,ASN_COMPOSITE,RDNSequence,
    272 	(encoder_func*)ConvertRDNSequence2RFC2253,(encoder_func*)NULL,(encoder_func*)NULL,
    273 	(gser_decoder_func*)GDecComponentRDNSequence,(ber_decoder_func*)BDecComponentRDNSequence,
    274 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentRDNSequence}},
    275 { RelativeDistinguishedName, { -1, NULL, {},{},0,ASN_COMPOSITE,RDNSequence,
    276 	(encoder_func*)ConvertRDNSequence2RFC2253,(encoder_func*)NULL,(encoder_func*)NULL,
    277 	(gser_decoder_func*)GDecComponentRDNSequence,(ber_decoder_func*)BDecComponentRDNSequence,
    278 	(comp_free_func*)NULL,(extract_component_from_id_func*)NULL,MatchingComponentRDNSequence}},
    279 { TelephoneNumber, {}},
    280 { FacsimileTelephoneNumber__telephoneNumber, {}},
    281 { DirectoryString, {}},
    282 { ASN_COMP_CERTIFICATE, {}},
    283 { ASNTYPE_END , {}}
    284 };
    285