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