1 module bindbc.gnutls.pkcs12; 2 3 import bindbc.gnutls.gnutls; 4 5 struct gnutls_pkcs12_int; 6 alias gnutls_pkcs12_t = gnutls_pkcs12_int*; 7 8 struct gnutls_pkcs12_bag_int; 9 alias gnutls_pkcs12_bag_t = gnutls_pkcs12_bag_int*; 10 11 enum GNUTLS_PKCS12_SP_INCLUDE_SELF_SIGNED = 1; 12 enum gnutls_pkcs12_bag_type_t 13 { 14 GNUTLS_BAG_EMPTY = 0, 15 GNUTLS_BAG_PKCS8_ENCRYPTED_KEY = 1, 16 GNUTLS_BAG_PKCS8_KEY = 2, 17 GNUTLS_BAG_CERTIFICATE = 3, 18 GNUTLS_BAG_CRL = 4, 19 GNUTLS_BAG_SECRET = 5, 20 21 GNUTLS_BAG_ENCRYPTED = 10, 22 GNUTLS_BAG_UNKNOWN = 20 23 } 24 25 version (BindGnuTLS_Static) 26 { 27 extern (System) @nogc nothrow @system: 28 29 int gnutls_pkcs12_init (gnutls_pkcs12_t* pkcs12); 30 void gnutls_pkcs12_deinit (gnutls_pkcs12_t pkcs12); 31 int gnutls_pkcs12_import (gnutls_pkcs12_t pkcs12, const(gnutls_datum_t)* data, gnutls_x509_crt_fmt_t format, uint flags); 32 int gnutls_pkcs12_export (gnutls_pkcs12_t pkcs12, gnutls_x509_crt_fmt_t format, void* output_data, size_t* output_data_size); 33 int gnutls_pkcs12_export2 (gnutls_pkcs12_t pkcs12, gnutls_x509_crt_fmt_t format, gnutls_datum_t* out_); 34 int gnutls_pkcs12_get_bag (gnutls_pkcs12_t pkcs12, int indx, gnutls_pkcs12_bag_t bag); 35 int gnutls_pkcs12_set_bag (gnutls_pkcs12_t pkcs12, gnutls_pkcs12_bag_t bag); 36 int gnutls_pkcs12_generate_mac (gnutls_pkcs12_t pkcs12, const(char)* pass); 37 int gnutls_pkcs12_generate_mac2 (gnutls_pkcs12_t pkcs12, gnutls_mac_algorithm_t mac, const(char)* pass); 38 int gnutls_pkcs12_verify_mac (gnutls_pkcs12_t pkcs12, const(char)* pass); 39 int gnutls_pkcs12_bag_decrypt (gnutls_pkcs12_bag_t bag, const(char)* pass); 40 int gnutls_pkcs12_bag_encrypt (gnutls_pkcs12_bag_t bag, const(char)* pass, uint flags); 41 int gnutls_pkcs12_bag_enc_info (gnutls_pkcs12_bag_t bag, uint* schema, uint* cipher, void* salt, uint* salt_size, uint* iter_count, char** oid); 42 int gnutls_pkcs12_mac_info (gnutls_pkcs12_t pkcs12, uint* mac, void* salt, uint* salt_size, uint* iter_count, char** oid); 43 int gnutls_pkcs12_simple_parse (gnutls_pkcs12_t p12, const(char)* password, gnutls_x509_privkey_t* key, gnutls_x509_crt_t** chain, uint* chain_len, gnutls_x509_crt_t** extra_certs, uint* extra_certs_len, gnutls_x509_crl_t* crl, uint flags); 44 int gnutls_pkcs12_bag_get_type (gnutls_pkcs12_bag_t bag, uint indx); 45 int gnutls_pkcs12_bag_get_data (gnutls_pkcs12_bag_t bag, uint indx, gnutls_datum_t* data); 46 int gnutls_pkcs12_bag_set_data (gnutls_pkcs12_bag_t bag, gnutls_pkcs12_bag_type_t type, const(gnutls_datum_t)* data); 47 int gnutls_pkcs12_bag_set_crl (gnutls_pkcs12_bag_t bag, gnutls_x509_crl_t crl); 48 int gnutls_pkcs12_bag_set_crt (gnutls_pkcs12_bag_t bag, gnutls_x509_crt_t crt); 49 int gnutls_pkcs12_bag_set_privkey (gnutls_pkcs12_bag_t bag, gnutls_x509_privkey_t privkey, const(char)* password, uint flags); 50 int gnutls_pkcs12_bag_init (gnutls_pkcs12_bag_t* bag); 51 void gnutls_pkcs12_bag_deinit (gnutls_pkcs12_bag_t bag); 52 int gnutls_pkcs12_bag_get_count (gnutls_pkcs12_bag_t bag); 53 int gnutls_pkcs12_bag_get_key_id (gnutls_pkcs12_bag_t bag, uint indx, gnutls_datum_t* id); 54 int gnutls_pkcs12_bag_set_key_id (gnutls_pkcs12_bag_t bag, uint indx, const(gnutls_datum_t)* id); 55 int gnutls_pkcs12_bag_get_friendly_name (gnutls_pkcs12_bag_t bag, uint indx, char** name); 56 int gnutls_pkcs12_bag_set_friendly_name (gnutls_pkcs12_bag_t bag, uint indx, const(char)* name); 57 } 58 else 59 { 60 extern (System) @nogc nothrow @system 61 { 62 alias pgnutls_pkcs12_init = int function (gnutls_pkcs12_t* pkcs12); 63 alias pgnutls_pkcs12_deinit = void function (gnutls_pkcs12_t pkcs12); 64 alias pgnutls_pkcs12_import = int function (gnutls_pkcs12_t pkcs12, const(gnutls_datum_t)* data, gnutls_x509_crt_fmt_t format, uint flags); 65 alias pgnutls_pkcs12_export = int function (gnutls_pkcs12_t pkcs12, gnutls_x509_crt_fmt_t format, void* output_data, size_t* output_data_size); 66 alias pgnutls_pkcs12_export2 = int function (gnutls_pkcs12_t pkcs12, gnutls_x509_crt_fmt_t format, gnutls_datum_t* out_); 67 alias pgnutls_pkcs12_get_bag = int function (gnutls_pkcs12_t pkcs12, int indx, gnutls_pkcs12_bag_t bag); 68 alias pgnutls_pkcs12_set_bag = int function (gnutls_pkcs12_t pkcs12, gnutls_pkcs12_bag_t bag); 69 alias pgnutls_pkcs12_generate_mac = int function (gnutls_pkcs12_t pkcs12, const(char)* pass); 70 alias pgnutls_pkcs12_generate_mac2 = int function (gnutls_pkcs12_t pkcs12, gnutls_mac_algorithm_t mac, const(char)* pass); 71 alias pgnutls_pkcs12_verify_mac = int function (gnutls_pkcs12_t pkcs12, const(char)* pass); 72 alias pgnutls_pkcs12_bag_decrypt = int function (gnutls_pkcs12_bag_t bag, const(char)* pass); 73 alias pgnutls_pkcs12_bag_encrypt = int function (gnutls_pkcs12_bag_t bag, const(char)* pass, uint flags); 74 alias pgnutls_pkcs12_bag_enc_info = int function (gnutls_pkcs12_bag_t bag, uint* schema, uint* cipher, void* salt, uint* salt_size, uint* iter_count, char** oid); 75 alias pgnutls_pkcs12_mac_info = int function (gnutls_pkcs12_t pkcs12, uint* mac, void* salt, uint* salt_size, uint* iter_count, char** oid); 76 alias pgnutls_pkcs12_simple_parse = int function (gnutls_pkcs12_t p12, const(char)* password, gnutls_x509_privkey_t* key, gnutls_x509_crt_t** chain, uint* chain_len, gnutls_x509_crt_t** extra_certs, uint* extra_certs_len, gnutls_x509_crl_t* crl, uint flags); 77 alias pgnutls_pkcs12_bag_get_type = int function (gnutls_pkcs12_bag_t bag, uint indx); 78 alias pgnutls_pkcs12_bag_get_data = int function (gnutls_pkcs12_bag_t bag, uint indx, gnutls_datum_t* data); 79 alias pgnutls_pkcs12_bag_set_data = int function (gnutls_pkcs12_bag_t bag, gnutls_pkcs12_bag_type_t type, const(gnutls_datum_t)* data); 80 alias pgnutls_pkcs12_bag_set_crl = int function (gnutls_pkcs12_bag_t bag, gnutls_x509_crl_t crl); 81 alias pgnutls_pkcs12_bag_set_crt = int function (gnutls_pkcs12_bag_t bag, gnutls_x509_crt_t crt); 82 alias pgnutls_pkcs12_bag_set_privkey = int function (gnutls_pkcs12_bag_t bag, gnutls_x509_privkey_t privkey, const(char)* password, uint flags); 83 alias pgnutls_pkcs12_bag_init = int function (gnutls_pkcs12_bag_t* bag); 84 alias pgnutls_pkcs12_bag_deinit = void function (gnutls_pkcs12_bag_t bag); 85 alias pgnutls_pkcs12_bag_get_count = int function (gnutls_pkcs12_bag_t bag); 86 alias pgnutls_pkcs12_bag_get_key_id = int function (gnutls_pkcs12_bag_t bag, uint indx, gnutls_datum_t* id); 87 alias pgnutls_pkcs12_bag_set_key_id = int function (gnutls_pkcs12_bag_t bag, uint indx, const(gnutls_datum_t)* id); 88 alias pgnutls_pkcs12_bag_get_friendly_name = int function (gnutls_pkcs12_bag_t bag, uint indx, char** name); 89 alias pgnutls_pkcs12_bag_set_friendly_name = int function (gnutls_pkcs12_bag_t bag, uint indx, const(char)* name); 90 } 91 92 __gshared 93 { 94 pgnutls_pkcs12_init gnutls_pkcs12_init; 95 pgnutls_pkcs12_deinit gnutls_pkcs12_deinit; 96 pgnutls_pkcs12_import gnutls_pkcs12_import; 97 pgnutls_pkcs12_export gnutls_pkcs12_export; 98 pgnutls_pkcs12_export2 gnutls_pkcs12_export2; 99 pgnutls_pkcs12_get_bag gnutls_pkcs12_get_bag; 100 pgnutls_pkcs12_set_bag gnutls_pkcs12_set_bag; 101 pgnutls_pkcs12_generate_mac gnutls_pkcs12_generate_mac; 102 pgnutls_pkcs12_generate_mac2 gnutls_pkcs12_generate_mac2; 103 pgnutls_pkcs12_verify_mac gnutls_pkcs12_verify_mac; 104 pgnutls_pkcs12_bag_decrypt gnutls_pkcs12_bag_decrypt; 105 pgnutls_pkcs12_bag_encrypt gnutls_pkcs12_bag_encrypt; 106 pgnutls_pkcs12_bag_enc_info gnutls_pkcs12_bag_enc_info; 107 pgnutls_pkcs12_mac_info gnutls_pkcs12_mac_info; 108 pgnutls_pkcs12_simple_parse gnutls_pkcs12_simple_parse; 109 pgnutls_pkcs12_bag_get_type gnutls_pkcs12_bag_get_type; 110 pgnutls_pkcs12_bag_get_data gnutls_pkcs12_bag_get_data; 111 pgnutls_pkcs12_bag_set_data gnutls_pkcs12_bag_set_data; 112 pgnutls_pkcs12_bag_set_crl gnutls_pkcs12_bag_set_crl; 113 pgnutls_pkcs12_bag_set_crt gnutls_pkcs12_bag_set_crt; 114 pgnutls_pkcs12_bag_set_privkey gnutls_pkcs12_bag_set_privkey; 115 pgnutls_pkcs12_bag_init gnutls_pkcs12_bag_init; 116 pgnutls_pkcs12_bag_deinit gnutls_pkcs12_bag_deinit; 117 pgnutls_pkcs12_bag_get_count gnutls_pkcs12_bag_get_count; 118 pgnutls_pkcs12_bag_get_key_id gnutls_pkcs12_bag_get_key_id; 119 pgnutls_pkcs12_bag_set_key_id gnutls_pkcs12_bag_set_key_id; 120 pgnutls_pkcs12_bag_get_friendly_name gnutls_pkcs12_bag_get_friendly_name; 121 pgnutls_pkcs12_bag_set_friendly_name gnutls_pkcs12_bag_set_friendly_name; 122 } 123 124 import bindbc.loader : SharedLib, bindSymbol_stdcall; 125 void bindPkcs12(SharedLib lib) 126 { 127 lib.bindSymbol_stdcall(gnutls_pkcs12_init, "gnutls_pkcs12_init"); 128 lib.bindSymbol_stdcall(gnutls_pkcs12_deinit, "gnutls_pkcs12_deinit"); 129 lib.bindSymbol_stdcall(gnutls_pkcs12_import, "gnutls_pkcs12_import"); 130 lib.bindSymbol_stdcall(gnutls_pkcs12_export, "gnutls_pkcs12_export"); 131 lib.bindSymbol_stdcall(gnutls_pkcs12_export2, "gnutls_pkcs12_export2"); 132 lib.bindSymbol_stdcall(gnutls_pkcs12_get_bag, "gnutls_pkcs12_get_bag"); 133 lib.bindSymbol_stdcall(gnutls_pkcs12_set_bag, "gnutls_pkcs12_set_bag"); 134 lib.bindSymbol_stdcall(gnutls_pkcs12_generate_mac, "gnutls_pkcs12_generate_mac"); 135 lib.bindSymbol_stdcall(gnutls_pkcs12_generate_mac2, "gnutls_pkcs12_generate_mac2"); 136 lib.bindSymbol_stdcall(gnutls_pkcs12_verify_mac, "gnutls_pkcs12_verify_mac"); 137 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_decrypt, "gnutls_pkcs12_bag_decrypt"); 138 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_encrypt, "gnutls_pkcs12_bag_encrypt"); 139 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_enc_info, "gnutls_pkcs12_bag_enc_info"); 140 lib.bindSymbol_stdcall(gnutls_pkcs12_mac_info, "gnutls_pkcs12_mac_info"); 141 lib.bindSymbol_stdcall(gnutls_pkcs12_simple_parse, "gnutls_pkcs12_simple_parse"); 142 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_get_type, "gnutls_pkcs12_bag_get_type"); 143 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_get_data, "gnutls_pkcs12_bag_get_data"); 144 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_set_data, "gnutls_pkcs12_bag_set_data"); 145 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_set_crl, "gnutls_pkcs12_bag_set_crl"); 146 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_set_crt, "gnutls_pkcs12_bag_set_crt"); 147 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_set_privkey, "gnutls_pkcs12_bag_set_privkey"); 148 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_init, "gnutls_pkcs12_bag_init"); 149 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_deinit, "gnutls_pkcs12_bag_deinit"); 150 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_get_count, "gnutls_pkcs12_bag_get_count"); 151 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_get_key_id, "gnutls_pkcs12_bag_get_key_id"); 152 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_set_key_id, "gnutls_pkcs12_bag_set_key_id"); 153 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_get_friendly_name, "gnutls_pkcs12_bag_get_friendly_name"); 154 lib.bindSymbol_stdcall(gnutls_pkcs12_bag_set_friendly_name, "gnutls_pkcs12_bag_set_friendly_name"); 155 } 156 }