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