1 2import sys 3from ctypes import * 4 5# Type aliases 6# 7 8time_t = c_long 9size_t = c_size_t 10ssize_t = c_long 11 12gnutls_openpgp_keyid_t = c_ubyte * 8 13gnutls_transport_ptr_t = c_void_p 14gnutls_x509_dn_t = c_void_p 15 16 17# Enumerations 18# 19 20gnutls_alert_description_t = c_int # enum 21gnutls_alert_level_t = c_int # enum 22gnutls_certificate_import_flags = c_int # enum 23gnutls_certificate_print_formats = c_int # enum 24gnutls_certificate_request_t = c_int # enum 25gnutls_certificate_status_t = c_int # enum 26gnutls_certificate_type_t = c_int # enum 27gnutls_certificate_verify_flags = c_int # enum 28gnutls_cipher_algorithm_t = c_int # enum 29gnutls_close_request_t = c_int # enum 30gnutls_compression_method_t = c_int # enum 31gnutls_connection_end_t = c_int # enum 32gnutls_credentials_type_t = c_int # enum 33gnutls_digest_algorithm_t = c_int # enum 34gnutls_handshake_description_t = c_int # enum 35gnutls_ia_apptype_t = c_int # enum 36gnutls_kx_algorithm_t = c_int # enum 37gnutls_mac_algorithm_t = c_int # enum 38gnutls_openpgp_crt_fmt = c_int # enum 39gnutls_openpgp_crt_status_t = c_int # enum 40gnutls_params_type_t = c_int # enum 41gnutls_pk_algorithm_t = c_int # enum 42gnutls_pkcs_encrypt_flags_t = c_int # enum 43gnutls_privkey_type_t = c_int # enum 44gnutls_protocol_t = c_int # enum 45gnutls_psk_key_flags = c_int # enum 46gnutls_server_name_type_t = c_int # enum 47gnutls_sign_algorithm_t = c_int # enum 48gnutls_supplemental_data_format_type_t = c_int # enum 49gnutls_x509_crt_fmt_t = c_int # enum 50gnutls_x509_subject_alt_name_t = c_int # enum 51 52gnutls_certificate_print_formats_t = gnutls_certificate_print_formats 53gnutls_openpgp_crt_fmt_t = gnutls_openpgp_crt_fmt 54 55 56# Unions, structures and pointers to structure types 57# 58 59class gnutls_session_int(Structure): 60 _fields_ = [] 61gnutls_session_t = POINTER(gnutls_session_int) 62 63class gnutls_ia_server_credentials_st(Structure): 64 _fields_ = [] 65gnutls_ia_server_credentials_t = POINTER(gnutls_ia_server_credentials_st) 66 67class gnutls_ia_client_credentials_st(Structure): 68 _fields_ = [] 69gnutls_ia_client_credentials_t = POINTER(gnutls_ia_client_credentials_st) 70 71class gnutls_dh_params_int(Structure): 72 _fields_ = [] 73gnutls_dh_params_t = POINTER(gnutls_dh_params_int) 74 75class gnutls_x509_privkey_int(Structure): 76 _fields_ = [] 77gnutls_x509_privkey_t = POINTER(gnutls_x509_privkey_int) 78gnutls_rsa_params_t = POINTER(gnutls_x509_privkey_int) 79 80class params(Union): 81 _fields_ = [('dh', gnutls_dh_params_t), 82 ('rsa_export', gnutls_rsa_params_t)] 83 84class gnutls_pkcs11_privkey_st(Structure): 85 _fields_ = [] 86gnutls_pkcs11_privkey_t = POINTER(gnutls_pkcs11_privkey_st) 87 88class gnutls_priority_st(Structure): 89 _fields_ = [] 90gnutls_priority_t = POINTER(gnutls_priority_st) 91 92class gnutls_datum_t(Structure): 93 _fields_ = [('data', POINTER(c_ubyte)), 94 ('size', c_uint)] 95 96class gnutls_params_st(Structure): 97 _fields_ = [('type', gnutls_params_type_t), 98 ('params', params), 99 ('deinit', c_int)] 100 101class gnutls_certificate_credentials_st(Structure): 102 _fields_ = [] 103gnutls_certificate_credentials_t = POINTER(gnutls_certificate_credentials_st) 104gnutls_certificate_server_credentials = gnutls_certificate_credentials_t 105gnutls_certificate_client_credentials = gnutls_certificate_credentials_t 106 107class gnutls_anon_server_credentials_st(Structure): 108 _fields_ = [] 109gnutls_anon_server_credentials_t = POINTER(gnutls_anon_server_credentials_st) 110 111class gnutls_anon_client_credentials_st(Structure): 112 _fields_ = [] 113gnutls_anon_client_credentials_t = POINTER(gnutls_anon_client_credentials_st) 114 115class gnutls_x509_crl_int(Structure): 116 _fields_ = [] 117gnutls_x509_crl_t = POINTER(gnutls_x509_crl_int) 118 119class gnutls_x509_crt_int(Structure): 120 _fields_ = [] 121gnutls_x509_crt_t = POINTER(gnutls_x509_crt_int) 122 123class gnutls_openpgp_keyring_int(Structure): 124 _fields_ = [] 125gnutls_openpgp_keyring_t = POINTER(gnutls_openpgp_keyring_int) 126 127class gnutls_srp_server_credentials_st(Structure): 128 _fields_ = [] 129gnutls_srp_server_credentials_t = POINTER(gnutls_srp_server_credentials_st) 130 131class gnutls_srp_client_credentials_st(Structure): 132 _fields_ = [] 133gnutls_srp_client_credentials_t = POINTER(gnutls_srp_client_credentials_st) 134 135class gnutls_psk_server_credentials_st(Structure): 136 _fields_ = [] 137gnutls_psk_server_credentials_t = POINTER(gnutls_psk_server_credentials_st) 138 139class gnutls_psk_client_credentials_st(Structure): 140 _fields_ = [] 141gnutls_psk_client_credentials_t = POINTER(gnutls_psk_client_credentials_st) 142 143class gnutls_openpgp_crt_int(Structure): 144 _fields_ = [] 145gnutls_openpgp_crt_t = POINTER(gnutls_openpgp_crt_int) 146 147class gnutls_openpgp_privkey_int(Structure): 148 _fields_ = [] 149gnutls_openpgp_privkey_t = POINTER(gnutls_openpgp_privkey_int) 150 151class cert(Union): 152 _fields_ = [('x509', POINTER(gnutls_x509_crt_t)), 153 ('pgp', gnutls_openpgp_crt_t)] 154 155class key(Union): 156 _fields_ = [('x509', gnutls_x509_privkey_t), 157 ('pgp', gnutls_openpgp_privkey_t), 158 ('pkcs11', gnutls_pkcs11_privkey_t)] 159 160class gnutls_retr2_st(Structure): 161 _fields_ = [('cert_type', gnutls_certificate_type_t), 162 ('key_type', gnutls_privkey_type_t), 163 ('cert', cert), 164 ('ncerts', c_uint), 165 ('key', key), 166 ('deinit_all', c_uint)] 167 168class gnutls_x509_ava_st(Structure): 169 _fields_ = [('oid', gnutls_datum_t), 170 ('value', gnutls_datum_t), 171 ('value_tag', c_ulong)] 172 173class gnutls_pkcs7_int(Structure): 174 _fields_ = [] 175gnutls_pkcs7_t = POINTER(gnutls_pkcs7_int) 176 177class gnutls_x509_crq_int(Structure): 178 _fields_ = [] 179gnutls_x509_crq_t = POINTER(gnutls_x509_crq_int) 180 181 182# Function type declarations 183# 184 185gnutls_alloc_function = CFUNCTYPE(c_void_p, size_t) 186gnutls_calloc_function = CFUNCTYPE(c_void_p, size_t, size_t) 187gnutls_certificate_retrieve_function = CFUNCTYPE(c_int, gnutls_session_t, POINTER(gnutls_datum_t), c_int, POINTER(gnutls_pk_algorithm_t), c_int, POINTER(gnutls_retr2_st)) 188gnutls_db_remove_func = CFUNCTYPE(c_int, c_void_p, gnutls_datum_t) 189gnutls_db_retr_func = CFUNCTYPE(gnutls_datum_t, c_void_p, gnutls_datum_t) 190gnutls_db_store_func = CFUNCTYPE(c_int, c_void_p, gnutls_datum_t, gnutls_datum_t) 191gnutls_free_function = CFUNCTYPE(None, c_void_p) 192gnutls_handshake_post_client_hello_func = CFUNCTYPE(c_int, gnutls_session_t) 193gnutls_ia_avp_func = CFUNCTYPE(c_int, gnutls_session_t, c_void_p, c_char_p, size_t, POINTER(c_char_p), POINTER(size_t)) 194gnutls_is_secure_function = CFUNCTYPE(c_int, c_void_p) 195gnutls_log_func = CFUNCTYPE(None, c_int, c_char_p) 196gnutls_openpgp_recv_key_func = CFUNCTYPE(c_int, gnutls_session_t, POINTER(c_ubyte), c_uint, POINTER(gnutls_datum_t)) 197gnutls_oprfi_callback_func = CFUNCTYPE(c_int, gnutls_session_t, c_void_p, size_t, POINTER(c_ubyte), POINTER(c_ubyte)) 198gnutls_params_function = CFUNCTYPE(c_int, gnutls_session_t, gnutls_params_type_t, POINTER(gnutls_params_st)) 199gnutls_psk_client_credentials_function = CFUNCTYPE(c_int, gnutls_session_t, POINTER(c_char_p), POINTER(gnutls_datum_t)) 200gnutls_psk_server_credentials_function = CFUNCTYPE(c_int, gnutls_session_t, c_char_p, POINTER(gnutls_datum_t)) 201gnutls_pull_func = CFUNCTYPE(ssize_t, gnutls_transport_ptr_t, c_void_p, size_t) 202gnutls_push_func = CFUNCTYPE(ssize_t, gnutls_transport_ptr_t, c_void_p, size_t) 203gnutls_realloc_function = CFUNCTYPE(c_void_p, c_void_p, size_t) 204gnutls_sign_func = CFUNCTYPE(c_int, gnutls_session_t, c_void_p, gnutls_certificate_type_t, POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)) 205gnutls_srp_client_credentials_function = CFUNCTYPE(c_int, gnutls_session_t, POINTER(c_char_p), POINTER(c_char_p)) 206gnutls_srp_server_credentials_function = CFUNCTYPE(c_int, gnutls_session_t, c_char_p, POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)) 207 208 209__all__ = sorted(name for name in sys.modules[__name__].__dict__ if name.startswith('gnutls_') or name in ('size_t', 'ssize_t', 'time_t', 'cert', 'key', 'params')) 210 211