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 }