1 module bindbc.gnutls.x509_ext;
2
3 import bindbc.gnutls.config;
4 import bindbc.gnutls.gnutls;
5 import bindbc.gnutls.x509;
6 import core.sys.posix.sys.select;
7
8 struct gnutls_subject_alt_names_st;
9 alias gnutls_subject_alt_names_t = gnutls_subject_alt_names_st*;
10
11 struct gnutls_x509_crl_dist_points_st;
12 alias gnutls_x509_crl_dist_points_t = gnutls_x509_crl_dist_points_st*;
13
14 struct gnutls_x509_aia_st;
15 alias gnutls_x509_aia_t = gnutls_x509_aia_st*;
16
17 struct gnutls_x509_aki_st;
18 alias gnutls_x509_aki_t = gnutls_x509_aki_st*;
19
20 struct gnutls_x509_key_purposes_st;
21 alias gnutls_x509_key_purposes_t = gnutls_x509_key_purposes_st*;
22
23 struct gnutls_x509_policies_st;
24 alias gnutls_x509_policies_t = gnutls_x509_policies_st*;
25
26 alias gnutls_x509_ext_import_issuer_alt_name = gnutls_x509_ext_import_subject_alt_names;
27 alias gnutls_x509_ext_export_issuer_alt_name = gnutls_x509_ext_export_subject_alt_names;
28
29 version (BindGnuTLS_Static)
30 {
31 extern (System) @nogc nothrow @system:
32
33 int gnutls_subject_alt_names_init (gnutls_subject_alt_names_t*);
34 void gnutls_subject_alt_names_deinit (gnutls_subject_alt_names_t sans);
35 int gnutls_subject_alt_names_get (gnutls_subject_alt_names_t sans, uint seq, uint* san_type, gnutls_datum_t* san, gnutls_datum_t* othername_oid);
36 int gnutls_subject_alt_names_set (gnutls_subject_alt_names_t sans, uint san_type, const(gnutls_datum_t)* san, const(char)* othername_oid);
37 int gnutls_x509_ext_import_subject_alt_names (const(gnutls_datum_t)* ext, gnutls_subject_alt_names_t, uint flags);
38 int gnutls_x509_ext_export_subject_alt_names (gnutls_subject_alt_names_t, gnutls_datum_t* ext);
39 int gnutls_x509_crl_dist_points_init (gnutls_x509_crl_dist_points_t*);
40 void gnutls_x509_crl_dist_points_deinit (gnutls_x509_crl_dist_points_t);
41 int gnutls_x509_crl_dist_points_get (gnutls_x509_crl_dist_points_t, uint seq, uint* type, gnutls_datum_t* dist, uint* reason_flags);
42 int gnutls_x509_crl_dist_points_set (gnutls_x509_crl_dist_points_t, gnutls_x509_subject_alt_name_t type, const(gnutls_datum_t)* dist, uint reason_flags);
43 int gnutls_x509_ext_import_crl_dist_points (const(gnutls_datum_t)* ext, gnutls_x509_crl_dist_points_t dp, uint flags);
44 int gnutls_x509_ext_export_crl_dist_points (gnutls_x509_crl_dist_points_t dp, gnutls_datum_t* ext);
45 int gnutls_x509_ext_import_name_constraints (const(gnutls_datum_t)* ext, gnutls_x509_name_constraints_t nc, uint flags);
46 int gnutls_x509_ext_export_name_constraints (gnutls_x509_name_constraints_t nc, gnutls_datum_t* ext);
47 int gnutls_x509_aia_init (gnutls_x509_aia_t*);
48 void gnutls_x509_aia_deinit (gnutls_x509_aia_t);
49 int gnutls_x509_aia_get (gnutls_x509_aia_t aia, uint seq, gnutls_datum_t* oid, uint* san_type, gnutls_datum_t* san);
50 int gnutls_x509_aia_set (gnutls_x509_aia_t aia, const(char)* oid, uint san_type, const(gnutls_datum_t)* san);
51 int gnutls_x509_ext_import_aia (const(gnutls_datum_t)* ext, gnutls_x509_aia_t, uint flags);
52 int gnutls_x509_ext_export_aia (gnutls_x509_aia_t aia, gnutls_datum_t* ext);
53 int gnutls_x509_ext_import_subject_key_id (const(gnutls_datum_t)* ext, gnutls_datum_t* id);
54 int gnutls_x509_ext_export_subject_key_id (const(gnutls_datum_t)* id, gnutls_datum_t* ext);
55 int gnutls_x509_ext_export_authority_key_id (gnutls_x509_aki_t, gnutls_datum_t* ext);
56 int gnutls_x509_ext_import_authority_key_id (const(gnutls_datum_t)* ext, gnutls_x509_aki_t, uint flags);
57 int gnutls_x509_othername_to_virtual (const(char)* oid, const(gnutls_datum_t)* othername, uint* virt_type, gnutls_datum_t* virt);
58 int gnutls_x509_aki_init (gnutls_x509_aki_t*);
59 int gnutls_x509_aki_get_id (gnutls_x509_aki_t, gnutls_datum_t* id);
60 int gnutls_x509_aki_get_cert_issuer (gnutls_x509_aki_t aki, uint seq, uint* san_type, gnutls_datum_t* san, gnutls_datum_t* othername_oid, gnutls_datum_t* serial);
61 int gnutls_x509_aki_set_id (gnutls_x509_aki_t aki, const(gnutls_datum_t)* id);
62 int gnutls_x509_aki_set_cert_issuer (gnutls_x509_aki_t aki, uint san_type, const(gnutls_datum_t)* san, const(char)* othername_oid, const(gnutls_datum_t)* serial);
63 void gnutls_x509_aki_deinit (gnutls_x509_aki_t);
64 int gnutls_x509_ext_import_private_key_usage_period (const(gnutls_datum_t)* ext, time_t* activation, time_t* expiration);
65 int gnutls_x509_ext_export_private_key_usage_period (time_t activation, time_t expiration, gnutls_datum_t* ext);
66 int gnutls_x509_ext_import_basic_constraints (const(gnutls_datum_t)* ext, uint* ca, int* pathlen);
67 int gnutls_x509_ext_export_basic_constraints (uint ca, int pathlen, gnutls_datum_t* ext);
68 int gnutls_x509_key_purpose_init (gnutls_x509_key_purposes_t* p);
69 void gnutls_x509_key_purpose_deinit (gnutls_x509_key_purposes_t p);
70 int gnutls_x509_key_purpose_set (gnutls_x509_key_purposes_t p, const(char)* oid);
71 int gnutls_x509_key_purpose_get (gnutls_x509_key_purposes_t p, uint idx, gnutls_datum_t* oid);
72 int gnutls_x509_ext_import_key_purposes (const(gnutls_datum_t)* ext, gnutls_x509_key_purposes_t, uint flags);
73 int gnutls_x509_ext_export_key_purposes (gnutls_x509_key_purposes_t, gnutls_datum_t* ext);
74 int gnutls_x509_ext_import_key_usage (const(gnutls_datum_t)* ext, uint* key_usage);
75 int gnutls_x509_ext_export_key_usage (uint key_usage, gnutls_datum_t* ext);
76
77 static if (gnuTLSSupport >= GnuTLSSupport.gnutls_3_6_0)
78 {
79 int gnutls_x509_ext_import_inhibit_anypolicy (const(gnutls_datum_t)* ext, uint* skipcerts);
80 int gnutls_x509_ext_export_inhibit_anypolicy (uint skipcerts, gnutls_datum_t* ext);
81 }
82
83 int gnutls_x509_ext_import_proxy (const(gnutls_datum_t)* ext, int* pathlen, char** policyLanguage, char** policy, size_t* sizeof_policy);
84 int gnutls_x509_ext_export_proxy (int pathLenConstraint, const(char)* policyLanguage, const(char)* policy, size_t sizeof_policy, gnutls_datum_t* ext);
85 int gnutls_x509_policies_init (gnutls_x509_policies_t*);
86 void gnutls_x509_policies_deinit (gnutls_x509_policies_t);
87 int gnutls_x509_policies_get (gnutls_x509_policies_t policies, uint seq, gnutls_x509_policy_st* policy);
88 int gnutls_x509_policies_set (gnutls_x509_policies_t policies, const(gnutls_x509_policy_st)* policy);
89 int gnutls_x509_ext_import_policies (const(gnutls_datum_t)* ext, gnutls_x509_policies_t policies, uint flags);
90 int gnutls_x509_ext_export_policies (gnutls_x509_policies_t policies, gnutls_datum_t* ext);
91
92 static if (gnuTLSSupport >= GnuTLSSupport.gnutls_3_5_1)
93 {
94 int gnutls_x509_ext_import_tlsfeatures (const(gnutls_datum_t)* ext, gnutls_x509_tlsfeatures_t, uint flags);
95 int gnutls_x509_ext_export_tlsfeatures (gnutls_x509_tlsfeatures_t f, gnutls_datum_t* ext);
96 int gnutls_x509_tlsfeatures_add (gnutls_x509_tlsfeatures_t f, uint feature);
97 }
98 }
99 else
100 {
101 extern (System) @nogc nothrow @system
102 {
103 alias pgnutls_subject_alt_names_init = int function (gnutls_subject_alt_names_t*);
104 alias pgnutls_subject_alt_names_deinit = void function (gnutls_subject_alt_names_t sans);
105 alias pgnutls_subject_alt_names_get = int function (gnutls_subject_alt_names_t sans, uint seq, uint* san_type, gnutls_datum_t* san, gnutls_datum_t* othername_oid);
106 alias pgnutls_subject_alt_names_set = int function (gnutls_subject_alt_names_t sans, uint san_type, const(gnutls_datum_t)* san, const(char)* othername_oid);
107 alias pgnutls_x509_ext_import_subject_alt_names = int function (const(gnutls_datum_t)* ext, gnutls_subject_alt_names_t, uint flags);
108 alias pgnutls_x509_ext_export_subject_alt_names = int function (gnutls_subject_alt_names_t, gnutls_datum_t* ext);
109 alias pgnutls_x509_crl_dist_points_init = int function (gnutls_x509_crl_dist_points_t*);
110 alias pgnutls_x509_crl_dist_points_deinit = void function (gnutls_x509_crl_dist_points_t);
111 alias pgnutls_x509_crl_dist_points_get = int function (gnutls_x509_crl_dist_points_t, uint seq, uint* type, gnutls_datum_t* dist, uint* reason_flags);
112 alias pgnutls_x509_crl_dist_points_set = int function (gnutls_x509_crl_dist_points_t, gnutls_x509_subject_alt_name_t type, const(gnutls_datum_t)* dist, uint reason_flags);
113 alias pgnutls_x509_ext_import_crl_dist_points = int function (const(gnutls_datum_t)* ext, gnutls_x509_crl_dist_points_t dp, uint flags);
114 alias pgnutls_x509_ext_export_crl_dist_points = int function (gnutls_x509_crl_dist_points_t dp, gnutls_datum_t* ext);
115 alias pgnutls_x509_ext_import_name_constraints = int function (const(gnutls_datum_t)* ext, gnutls_x509_name_constraints_t nc, uint flags);
116 alias pgnutls_x509_ext_export_name_constraints = int function (gnutls_x509_name_constraints_t nc, gnutls_datum_t* ext);
117 alias pgnutls_x509_aia_init = int function (gnutls_x509_aia_t*);
118 alias pgnutls_x509_aia_deinit = void function (gnutls_x509_aia_t);
119 alias pgnutls_x509_aia_get = int function (gnutls_x509_aia_t aia, uint seq, gnutls_datum_t* oid, uint* san_type, gnutls_datum_t* san);
120 alias pgnutls_x509_aia_set = int function (gnutls_x509_aia_t aia, const(char)* oid, uint san_type, const(gnutls_datum_t)* san);
121 alias pgnutls_x509_ext_import_aia = int function (const(gnutls_datum_t)* ext, gnutls_x509_aia_t, uint flags);
122 alias pgnutls_x509_ext_export_aia = int function (gnutls_x509_aia_t aia, gnutls_datum_t* ext);
123 alias pgnutls_x509_ext_import_subject_key_id = int function (const(gnutls_datum_t)* ext, gnutls_datum_t* id);
124 alias pgnutls_x509_ext_export_subject_key_id = int function (const(gnutls_datum_t)* id, gnutls_datum_t* ext);
125 alias pgnutls_x509_ext_export_authority_key_id = int function (gnutls_x509_aki_t, gnutls_datum_t* ext);
126 alias pgnutls_x509_ext_import_authority_key_id = int function (const(gnutls_datum_t)* ext, gnutls_x509_aki_t, uint flags);
127 alias pgnutls_x509_othername_to_virtual = int function (const(char)* oid, const(gnutls_datum_t)* othername, uint* virt_type, gnutls_datum_t* virt);
128 alias pgnutls_x509_aki_init = int function (gnutls_x509_aki_t*);
129 alias pgnutls_x509_aki_get_id = int function (gnutls_x509_aki_t, gnutls_datum_t* id);
130 alias pgnutls_x509_aki_get_cert_issuer = int function (gnutls_x509_aki_t aki, uint seq, uint* san_type, gnutls_datum_t* san, gnutls_datum_t* othername_oid, gnutls_datum_t* serial);
131 alias pgnutls_x509_aki_set_id = int function (gnutls_x509_aki_t aki, const(gnutls_datum_t)* id);
132 alias pgnutls_x509_aki_set_cert_issuer = int function (gnutls_x509_aki_t aki, uint san_type, const(gnutls_datum_t)* san, const(char)* othername_oid, const(gnutls_datum_t)* serial);
133 alias pgnutls_x509_aki_deinit = void function (gnutls_x509_aki_t);
134 alias pgnutls_x509_ext_import_private_key_usage_period = int function (const(gnutls_datum_t)* ext, time_t* activation, time_t* expiration);
135 alias pgnutls_x509_ext_export_private_key_usage_period = int function (time_t activation, time_t expiration, gnutls_datum_t* ext);
136 alias pgnutls_x509_ext_import_basic_constraints = int function (const(gnutls_datum_t)* ext, uint* ca, int* pathlen);
137 alias pgnutls_x509_ext_export_basic_constraints = int function (uint ca, int pathlen, gnutls_datum_t* ext);
138 alias pgnutls_x509_key_purpose_init = int function (gnutls_x509_key_purposes_t* p);
139 alias pgnutls_x509_key_purpose_deinit = void function (gnutls_x509_key_purposes_t p);
140 alias pgnutls_x509_key_purpose_set = int function (gnutls_x509_key_purposes_t p, const(char)* oid);
141 alias pgnutls_x509_key_purpose_get = int function (gnutls_x509_key_purposes_t p, uint idx, gnutls_datum_t* oid);
142 alias pgnutls_x509_ext_import_key_purposes = int function (const(gnutls_datum_t)* ext, gnutls_x509_key_purposes_t, uint flags);
143 alias pgnutls_x509_ext_export_key_purposes = int function (gnutls_x509_key_purposes_t, gnutls_datum_t* ext);
144 alias pgnutls_x509_ext_import_key_usage = int function (const(gnutls_datum_t)* ext, uint* key_usage);
145 alias pgnutls_x509_ext_export_key_usage = int function (uint key_usage, gnutls_datum_t* ext);
146
147 static if (gnuTLSSupport >= GnuTLSSupport.gnutls_3_6_0)
148 {
149 alias pgnutls_x509_ext_import_inhibit_anypolicy = int function (const(gnutls_datum_t)* ext, uint* skipcerts);
150 alias pgnutls_x509_ext_export_inhibit_anypolicy = int function (uint skipcerts, gnutls_datum_t* ext);
151 }
152
153 alias pgnutls_x509_ext_import_proxy = int function (const(gnutls_datum_t)* ext, int* pathlen, char** policyLanguage, char** policy, size_t* sizeof_policy);
154 alias pgnutls_x509_ext_export_proxy = int function (int pathLenConstraint, const(char)* policyLanguage, const(char)* policy, size_t sizeof_policy, gnutls_datum_t* ext);
155 alias pgnutls_x509_policies_init = int function (gnutls_x509_policies_t*);
156 alias pgnutls_x509_policies_deinit = void function (gnutls_x509_policies_t);
157 alias pgnutls_x509_policies_get = int function (gnutls_x509_policies_t policies, uint seq, gnutls_x509_policy_st* policy);
158 alias pgnutls_x509_policies_set = int function (gnutls_x509_policies_t policies, const(gnutls_x509_policy_st)* policy);
159 alias pgnutls_x509_ext_import_policies = int function (const(gnutls_datum_t)* ext, gnutls_x509_policies_t policies, uint flags);
160 alias pgnutls_x509_ext_export_policies = int function (gnutls_x509_policies_t policies, gnutls_datum_t* ext);
161
162 static if (gnuTLSSupport >= GnuTLSSupport.gnutls_3_5_1)
163 {
164 alias pgnutls_x509_ext_import_tlsfeatures = int function (const(gnutls_datum_t)* ext, gnutls_x509_tlsfeatures_t, uint flags);
165 alias pgnutls_x509_ext_export_tlsfeatures = int function (gnutls_x509_tlsfeatures_t f, gnutls_datum_t* ext);
166 alias pgnutls_x509_tlsfeatures_add = int function (gnutls_x509_tlsfeatures_t f, uint feature);
167 }
168 }
169
170 __gshared
171 {
172 pgnutls_subject_alt_names_init gnutls_subject_alt_names_init;
173 pgnutls_subject_alt_names_deinit gnutls_subject_alt_names_deinit;
174 pgnutls_subject_alt_names_get gnutls_subject_alt_names_get;
175 pgnutls_subject_alt_names_set gnutls_subject_alt_names_set;
176 pgnutls_x509_ext_import_subject_alt_names gnutls_x509_ext_import_subject_alt_names;
177 pgnutls_x509_ext_export_subject_alt_names gnutls_x509_ext_export_subject_alt_names;
178 pgnutls_x509_crl_dist_points_init gnutls_x509_crl_dist_points_init;
179 pgnutls_x509_crl_dist_points_deinit gnutls_x509_crl_dist_points_deinit;
180 pgnutls_x509_crl_dist_points_get gnutls_x509_crl_dist_points_get;
181 pgnutls_x509_crl_dist_points_set gnutls_x509_crl_dist_points_set;
182 pgnutls_x509_ext_import_crl_dist_points gnutls_x509_ext_import_crl_dist_points;
183 pgnutls_x509_ext_export_crl_dist_points gnutls_x509_ext_export_crl_dist_points;
184 pgnutls_x509_ext_import_name_constraints gnutls_x509_ext_import_name_constraints;
185 pgnutls_x509_ext_export_name_constraints gnutls_x509_ext_export_name_constraints;
186 pgnutls_x509_aia_init gnutls_x509_aia_init;
187 pgnutls_x509_aia_deinit gnutls_x509_aia_deinit;
188 pgnutls_x509_aia_get gnutls_x509_aia_get;
189 pgnutls_x509_aia_set gnutls_x509_aia_set;
190 pgnutls_x509_ext_import_aia gnutls_x509_ext_import_aia;
191 pgnutls_x509_ext_export_aia gnutls_x509_ext_export_aia;
192 pgnutls_x509_ext_import_subject_key_id gnutls_x509_ext_import_subject_key_id;
193 pgnutls_x509_ext_export_subject_key_id gnutls_x509_ext_export_subject_key_id;
194 pgnutls_x509_ext_export_authority_key_id gnutls_x509_ext_export_authority_key_id;
195 pgnutls_x509_ext_import_authority_key_id gnutls_x509_ext_import_authority_key_id;
196 pgnutls_x509_othername_to_virtual gnutls_x509_othername_to_virtual;
197 pgnutls_x509_aki_init gnutls_x509_aki_init;
198 pgnutls_x509_aki_get_id gnutls_x509_aki_get_id;
199 pgnutls_x509_aki_get_cert_issuer gnutls_x509_aki_get_cert_issuer;
200 pgnutls_x509_aki_set_id gnutls_x509_aki_set_id;
201 pgnutls_x509_aki_set_cert_issuer gnutls_x509_aki_set_cert_issuer;
202 pgnutls_x509_aki_deinit gnutls_x509_aki_deinit;
203 pgnutls_x509_ext_import_private_key_usage_period gnutls_x509_ext_import_private_key_usage_period;
204 pgnutls_x509_ext_export_private_key_usage_period gnutls_x509_ext_export_private_key_usage_period;
205 pgnutls_x509_ext_import_basic_constraints gnutls_x509_ext_import_basic_constraints;
206 pgnutls_x509_ext_export_basic_constraints gnutls_x509_ext_export_basic_constraints;
207 pgnutls_x509_key_purpose_init gnutls_x509_key_purpose_init;
208 pgnutls_x509_key_purpose_deinit gnutls_x509_key_purpose_deinit;
209 pgnutls_x509_key_purpose_set gnutls_x509_key_purpose_set;
210 pgnutls_x509_key_purpose_get gnutls_x509_key_purpose_get;
211 pgnutls_x509_ext_import_key_purposes gnutls_x509_ext_import_key_purposes;
212 pgnutls_x509_ext_export_key_purposes gnutls_x509_ext_export_key_purposes;
213 pgnutls_x509_ext_import_key_usage gnutls_x509_ext_import_key_usage;
214 pgnutls_x509_ext_export_key_usage gnutls_x509_ext_export_key_usage;
215
216 static if (gnuTLSSupport >= GnuTLSSupport.gnutls_3_6_0)
217 {
218 pgnutls_x509_ext_import_inhibit_anypolicy gnutls_x509_ext_import_inhibit_anypolicy;
219 pgnutls_x509_ext_export_inhibit_anypolicy gnutls_x509_ext_export_inhibit_anypolicy;
220 }
221
222 pgnutls_x509_ext_import_proxy gnutls_x509_ext_import_proxy;
223 pgnutls_x509_ext_export_proxy gnutls_x509_ext_export_proxy;
224 pgnutls_x509_policies_init gnutls_x509_policies_init;
225 pgnutls_x509_policies_deinit gnutls_x509_policies_deinit;
226 pgnutls_x509_policies_get gnutls_x509_policies_get;
227 pgnutls_x509_policies_set gnutls_x509_policies_set;
228 pgnutls_x509_ext_import_policies gnutls_x509_ext_import_policies;
229 pgnutls_x509_ext_export_policies gnutls_x509_ext_export_policies;
230
231 static if (gnuTLSSupport >= GnuTLSSupport.gnutls_3_5_1)
232 {
233 pgnutls_x509_ext_import_tlsfeatures gnutls_x509_ext_import_tlsfeatures;
234 pgnutls_x509_ext_export_tlsfeatures gnutls_x509_ext_export_tlsfeatures;
235 pgnutls_x509_tlsfeatures_add gnutls_x509_tlsfeatures_add;
236 }
237 }
238
239 import bindbc.loader : SharedLib, bindSymbol_stdcall;
240 void bindX509Ext(SharedLib lib)
241 {
242 lib.bindSymbol_stdcall(gnutls_subject_alt_names_init, "gnutls_subject_alt_names_init");
243 lib.bindSymbol_stdcall(gnutls_subject_alt_names_deinit, "gnutls_subject_alt_names_deinit");
244 lib.bindSymbol_stdcall(gnutls_subject_alt_names_get, "gnutls_subject_alt_names_get");
245 lib.bindSymbol_stdcall(gnutls_subject_alt_names_set, "gnutls_subject_alt_names_set");
246 lib.bindSymbol_stdcall(gnutls_x509_ext_import_subject_alt_names, "gnutls_x509_ext_import_subject_alt_names");
247 lib.bindSymbol_stdcall(gnutls_x509_ext_export_subject_alt_names, "gnutls_x509_ext_export_subject_alt_names");
248 lib.bindSymbol_stdcall(gnutls_x509_crl_dist_points_init, "gnutls_x509_crl_dist_points_init");
249 lib.bindSymbol_stdcall(gnutls_x509_crl_dist_points_deinit, "gnutls_x509_crl_dist_points_deinit");
250 lib.bindSymbol_stdcall(gnutls_x509_crl_dist_points_get, "gnutls_x509_crl_dist_points_get");
251 lib.bindSymbol_stdcall(gnutls_x509_crl_dist_points_set, "gnutls_x509_crl_dist_points_set");
252 lib.bindSymbol_stdcall(gnutls_x509_ext_import_crl_dist_points, "gnutls_x509_ext_import_crl_dist_points");
253 lib.bindSymbol_stdcall(gnutls_x509_ext_export_crl_dist_points, "gnutls_x509_ext_export_crl_dist_points");
254 lib.bindSymbol_stdcall(gnutls_x509_ext_import_name_constraints, "gnutls_x509_ext_import_name_constraints");
255 lib.bindSymbol_stdcall(gnutls_x509_ext_export_name_constraints, "gnutls_x509_ext_export_name_constraints");
256 lib.bindSymbol_stdcall(gnutls_x509_aia_init, "gnutls_x509_aia_init");
257 lib.bindSymbol_stdcall(gnutls_x509_aia_deinit, "gnutls_x509_aia_deinit");
258 lib.bindSymbol_stdcall(gnutls_x509_aia_get, "gnutls_x509_aia_get");
259 lib.bindSymbol_stdcall(gnutls_x509_aia_set, "gnutls_x509_aia_set");
260 lib.bindSymbol_stdcall(gnutls_x509_ext_import_aia, "gnutls_x509_ext_import_aia");
261 lib.bindSymbol_stdcall(gnutls_x509_ext_export_aia, "gnutls_x509_ext_export_aia");
262 lib.bindSymbol_stdcall(gnutls_x509_ext_import_subject_key_id, "gnutls_x509_ext_import_subject_key_id");
263 lib.bindSymbol_stdcall(gnutls_x509_ext_export_subject_key_id, "gnutls_x509_ext_export_subject_key_id");
264 lib.bindSymbol_stdcall(gnutls_x509_ext_export_authority_key_id, "gnutls_x509_ext_export_authority_key_id");
265 lib.bindSymbol_stdcall(gnutls_x509_ext_import_authority_key_id, "gnutls_x509_ext_import_authority_key_id");
266 lib.bindSymbol_stdcall(gnutls_x509_othername_to_virtual, "gnutls_x509_othername_to_virtual");
267 lib.bindSymbol_stdcall(gnutls_x509_aki_init, "gnutls_x509_aki_init");
268 lib.bindSymbol_stdcall(gnutls_x509_aki_get_id, "gnutls_x509_aki_get_id");
269 lib.bindSymbol_stdcall(gnutls_x509_aki_get_cert_issuer, "gnutls_x509_aki_get_cert_issuer");
270 lib.bindSymbol_stdcall(gnutls_x509_aki_set_id, "gnutls_x509_aki_set_id");
271 lib.bindSymbol_stdcall(gnutls_x509_aki_set_cert_issuer, "gnutls_x509_aki_set_cert_issuer");
272 lib.bindSymbol_stdcall(gnutls_x509_aki_deinit, "gnutls_x509_aki_deinit");
273 lib.bindSymbol_stdcall(gnutls_x509_ext_import_private_key_usage_period, "gnutls_x509_ext_import_private_key_usage_period");
274 lib.bindSymbol_stdcall(gnutls_x509_ext_export_private_key_usage_period, "gnutls_x509_ext_export_private_key_usage_period");
275 lib.bindSymbol_stdcall(gnutls_x509_ext_import_basic_constraints, "gnutls_x509_ext_import_basic_constraints");
276 lib.bindSymbol_stdcall(gnutls_x509_ext_export_basic_constraints, "gnutls_x509_ext_export_basic_constraints");
277 lib.bindSymbol_stdcall(gnutls_x509_key_purpose_init, "gnutls_x509_key_purpose_init");
278 lib.bindSymbol_stdcall(gnutls_x509_key_purpose_deinit, "gnutls_x509_key_purpose_deinit");
279 lib.bindSymbol_stdcall(gnutls_x509_key_purpose_set, "gnutls_x509_key_purpose_set");
280 lib.bindSymbol_stdcall(gnutls_x509_key_purpose_get, "gnutls_x509_key_purpose_get");
281 lib.bindSymbol_stdcall(gnutls_x509_ext_import_key_purposes, "gnutls_x509_ext_import_key_purposes");
282 lib.bindSymbol_stdcall(gnutls_x509_ext_export_key_purposes, "gnutls_x509_ext_export_key_purposes");
283 lib.bindSymbol_stdcall(gnutls_x509_ext_import_key_usage, "gnutls_x509_ext_import_key_usage");
284 lib.bindSymbol_stdcall(gnutls_x509_ext_export_key_usage, "gnutls_x509_ext_export_key_usage");
285
286 static if (gnuTLSSupport >= GnuTLSSupport.gnutls_3_6_0)
287 {
288 lib.bindSymbol_stdcall(gnutls_x509_ext_import_inhibit_anypolicy, "gnutls_x509_ext_import_inhibit_anypolicy");
289 lib.bindSymbol_stdcall(gnutls_x509_ext_export_inhibit_anypolicy, "gnutls_x509_ext_export_inhibit_anypolicy");
290 }
291
292 lib.bindSymbol_stdcall(gnutls_x509_ext_import_proxy, "gnutls_x509_ext_import_proxy");
293 lib.bindSymbol_stdcall(gnutls_x509_ext_export_proxy, "gnutls_x509_ext_export_proxy");
294 lib.bindSymbol_stdcall(gnutls_x509_policies_init, "gnutls_x509_policies_init");
295 lib.bindSymbol_stdcall(gnutls_x509_policies_deinit, "gnutls_x509_policies_deinit");
296 lib.bindSymbol_stdcall(gnutls_x509_policies_get, "gnutls_x509_policies_get");
297 lib.bindSymbol_stdcall(gnutls_x509_policies_set, "gnutls_x509_policies_set");
298 lib.bindSymbol_stdcall(gnutls_x509_ext_import_policies, "gnutls_x509_ext_import_policies");
299 lib.bindSymbol_stdcall(gnutls_x509_ext_export_policies, "gnutls_x509_ext_export_policies");
300
301 static if (gnuTLSSupport >= GnuTLSSupport.gnutls_3_5_1)
302 {
303 lib.bindSymbol_stdcall(gnutls_x509_ext_import_tlsfeatures, "gnutls_x509_ext_import_tlsfeatures");
304 lib.bindSymbol_stdcall(gnutls_x509_ext_export_tlsfeatures, "gnutls_x509_ext_export_tlsfeatures");
305 lib.bindSymbol_stdcall(gnutls_x509_tlsfeatures_add, "gnutls_x509_tlsfeatures_add");
306 }
307 }
308 }