Date: Monday, April 20, 2015 @ 20:33:18 Author: spupykin Revision: 131755
upgpkg: python2-gnutls 2.0.1-1 upd Modified: python2-gnutls/trunk/PKGBUILD python2-gnutls/trunk/libraryfunctions.patch python2-gnutls/trunk/libraryinit.patch ------------------------+ PKGBUILD | 18 - libraryfunctions.patch | 499 ++++++++++++++++++++++++++++++----------------- libraryinit.patch | 42 --- 3 files changed, 335 insertions(+), 224 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2015-04-20 16:49:46 UTC (rev 131754) +++ PKGBUILD 2015-04-20 18:33:18 UTC (rev 131755) @@ -4,8 +4,8 @@ # Contributor: N3RD3X <[email protected]> pkgname=python2-gnutls -pkgver=1.2.5 -pkgrel=4 +pkgver=2.0.1 +pkgrel=1 pkgdesc="Python wrapper for the GNUTLS library" arch=('i686' 'x86_64') url="http://cheeseshop.python.org/pypi/python-gnutls" @@ -13,15 +13,15 @@ license=('LGPL') source=(http://pypi.python.org/packages/source/p/python-gnutls/python-gnutls-${pkgver}.tar.gz libraryinit.patch - libraryfunctions.patch) -md5sums=('a398a75b1f366857cf2628cf4d62dd34' - '2ac537f816225bc324a9e0529774df48' - '9907d3a446fdc3b33a70e57925d67298') + libraryfunctions.patch) +md5sums=('adba310851a15d19ff29355385c6f74f' + 'cf61e4cb5a8e1ef1a96384aed0c0670a' + 'ed930abe1554dd53a7f6f14747496f2e') -build() { +prepare() { cd ${srcdir}/python-gnutls-${pkgver} - patch -Np0 <$srcdir/libraryinit.patch - patch -Np0 <$srcdir/libraryfunctions.patch + patch -p1 <$srcdir/libraryinit.patch + patch -p1 <$srcdir/libraryfunctions.patch } package() { Modified: libraryfunctions.patch =================================================================== --- libraryfunctions.patch 2015-04-20 16:49:46 UTC (rev 131754) +++ libraryfunctions.patch 2015-04-20 18:33:18 UTC (rev 131755) @@ -1,224 +1,363 @@ ---- gnutls/library/functions.py 2011-08-19 07:48:14.000000000 +0400 -+++ gnutls.fixed/library/functions.py 2013-12-17 21:08:35.512682514 +0400 -@@ -4,7 +4,7 @@ - import sys - from ctypes import * +diff -wbBur python-gnutls-2.0.1.org/gnutls/connection.py python-gnutls-2.0.1/gnutls/connection.py +--- python-gnutls-2.0.1.org/gnutls/connection.py 2014-07-02 15:19:26.000000000 +0400 ++++ python-gnutls-2.0.1/gnutls/connection.py 2015-04-20 20:23:20.288498813 +0300 +@@ -24,22 +24,22 @@ + from gnutls.library.constants import GNUTLS_A_CERTIFICATE_EXPIRED, GNUTLS_A_CERTIFICATE_REVOKED + from gnutls.library.constants import GNUTLS_NAME_DNS + from gnutls.library.types import gnutls_certificate_credentials_t, gnutls_session_t, gnutls_x509_crt_t +-from gnutls.library.types import gnutls_certificate_server_retrieve_function ++from gnutls.library.types import gnutls_certificate_retrieve_function2 + from gnutls.library.functions import * --from gnutls.library import libgnutls, libgnutls_extra -+from gnutls.library import libgnutls - from gnutls.library.types import * +-@gnutls_certificate_server_retrieve_function +-def _retrieve_server_certificate(c_session, retr_st): ++@gnutls_certificate_retrieve_function2 ++def _retrieve_server_certificate(c_session, a, b, c, d, retr2_st): + session = PyObj_FromPtr(gnutls_session_get_ptr(c_session)) + identity = session.credentials.select_server_identity(session) +- retr_st.contents.type = GNUTLS_CRT_X509 +- retr_st.contents.deinit_all = 0 ++ retr2_st.contents.cert_type = GNUTLS_CRT_X509 ++ retr2_st.contents.deinit_all = 0 + if identity is None: +- retr_st.contents.ncerts = 0 ++ retr2_st.contents.ncerts = 0 + else: +- retr_st.contents.ncerts = 1 +- retr_st.contents.cert.x509.contents = identity.cert._c_object +- retr_st.contents.key.x509 = identity.key._c_object ++ retr2_st.contents.ncerts = 1 ++ retr2_st.contents.cert.x509.contents = identity.cert._c_object ++ retr2_st.contents.key.x509 = identity.key._c_object + return 0 -@@ -121,14 +121,6 @@ - gnutls_certificate_get_peers.argtypes = [gnutls_session_t, POINTER(c_uint)] - gnutls_certificate_get_peers.restype = POINTER(gnutls_datum_t) --gnutls_certificate_get_x509_cas = libgnutls.gnutls_certificate_get_x509_cas --gnutls_certificate_get_x509_cas.argtypes = [gnutls_certificate_credentials_t, POINTER(POINTER(gnutls_x509_crt_t)), POINTER(c_uint)] --gnutls_certificate_get_x509_cas.restype = None +@@ -91,7 +91,7 @@ + gnutls_certificate_set_x509_key(self._c_object, byref(cert._c_object), 1, key._c_object) + elif (cert, key) != (None, None): + raise ValueError("Specify neither or both the certificate and private key") +- gnutls_certificate_server_set_retrieve_function(self._c_object, _retrieve_server_certificate) ++ gnutls_certificate_set_retrieve_function2(self._c_object, _retrieve_server_certificate) + self._max_depth = 5 + self._max_bits = 8200 + self._type = CRED_CERTIFICATE +@@ -189,11 +189,14 @@ + """Select which identity the server will use for a given session. The default selection algorithm uses + the server name extension. A subclass can overwrite it if a different selection algorithm is desired.""" + server_name = session.server_name ++ print server_name + if server_name is not None: + return self.server_name_identities.get(server_name) + elif self.cert and self.key: ++ print "qweqwe\n" + return self ## since we have the cert and key attributes we can behave like a X509Identity + else: ++ print "asdasd\n" + return None + + +@@ -361,11 +364,7 @@ + session_params = self.credentials.session_params + # protocol order in the priority list is irrelevant (it always uses newer protocols first) + # the protocol list only specifies what protocols are to be enabled. +- gnutls_protocol_set_priority(self._c_object, c_priority_list(session_params.protocols)) +- gnutls_kx_set_priority(self._c_object, c_priority_list(session_params.kx_algorithms)) +- gnutls_cipher_set_priority(self._c_object, c_priority_list(session_params.ciphers)) +- gnutls_mac_set_priority(self._c_object, c_priority_list(session_params.mac_algorithms)) +- gnutls_compression_set_priority(self._c_object, c_priority_list(session_params.compressions)) ++ gnutls_set_default_priority(self._c_object) + + def handshake(self): + gnutls_handshake(self._c_object) +diff -wbBur python-gnutls-2.0.1.org/gnutls/crypto.py python-gnutls-2.0.1/gnutls/crypto.py +--- python-gnutls-2.0.1.org/gnutls/crypto.py 2011-05-20 17:13:12.000000000 +0400 ++++ python-gnutls-2.0.1/gnutls/crypto.py 2015-04-20 20:29:20.622064187 +0300 +@@ -332,14 +332,14 @@ + class RSAParams(object): + def __new__(cls, *args, **kwargs): + instance = object.__new__(cls) +- instance.__deinit = gnutls_rsa_params_deinit +- instance._c_object = gnutls_rsa_params_t() ++ instance.__deinit = gnutls_x509_privkey__deinit ++ instance._c_object =gnutls_x509_privkey_t() + return instance + + @method_args(int) + def __init__(self, bits=1024): +- gnutls_rsa_params_init(byref(self._c_object)) +- gnutls_rsa_params_generate2(self._c_object, bits) ++ gnutls_x509_privkey_init(byref(self._c_object)) ++ gnutls_x509_privkey_generate2(self._c_object, bits) + + def __get__(self, obj, type_=None): + return self._c_object +diff -wbBur python-gnutls-2.0.1.org/gnutls/library/functions.py python-gnutls-2.0.1/gnutls/library/functions.py +--- python-gnutls-2.0.1.org/gnutls/library/functions.py 2014-06-26 20:01:34.000000000 +0400 ++++ python-gnutls-2.0.1/gnutls/library/functions.py 2015-04-20 20:08:50.482643536 +0300 +@@ -84,10 +84,6 @@ + gnutls_certificate_client_get_request_status.argtypes = [gnutls_session_t] + gnutls_certificate_client_get_request_status.restype = c_int + +-gnutls_certificate_client_set_retrieve_function = libgnutls.gnutls_certificate_client_set_retrieve_function +-gnutls_certificate_client_set_retrieve_function.argtypes = [gnutls_certificate_credentials_t, gnutls_certificate_client_retrieve_function] +-gnutls_certificate_client_set_retrieve_function.restype = None - --gnutls_certificate_get_x509_crls = libgnutls.gnutls_certificate_get_x509_crls --gnutls_certificate_get_x509_crls.argtypes = [gnutls_certificate_credentials_t, POINTER(POINTER(gnutls_x509_crl_t)), POINTER(c_uint)] --gnutls_certificate_get_x509_crls.restype = None + gnutls_certificate_expiration_time_peers = libgnutls.gnutls_certificate_expiration_time_peers + gnutls_certificate_expiration_time_peers.argtypes = [gnutls_session_t] + gnutls_certificate_expiration_time_peers.restype = time_t +@@ -129,9 +125,9 @@ + gnutls_certificate_server_set_request.argtypes = [gnutls_session_t, gnutls_certificate_request_t] + gnutls_certificate_server_set_request.restype = None + +-gnutls_certificate_server_set_retrieve_function = libgnutls.gnutls_certificate_server_set_retrieve_function +-gnutls_certificate_server_set_retrieve_function.argtypes = [gnutls_certificate_credentials_t, gnutls_certificate_server_retrieve_function] +-gnutls_certificate_server_set_retrieve_function.restype = None ++gnutls_certificate_set_retrieve_function2 = libgnutls.gnutls_certificate_set_retrieve_function2 ++gnutls_certificate_set_retrieve_function2.argtypes = [gnutls_certificate_credentials_t, gnutls_certificate_retrieve_function2] ++gnutls_certificate_set_retrieve_function2.restype = None + + gnutls_certificate_set_dh_params = libgnutls.gnutls_certificate_set_dh_params + gnutls_certificate_set_dh_params.argtypes = [gnutls_certificate_credentials_t, gnutls_dh_params_t] +@@ -141,10 +137,6 @@ + gnutls_certificate_set_params_function.argtypes = [gnutls_certificate_credentials_t, gnutls_params_function] + gnutls_certificate_set_params_function.restype = None + +-gnutls_certificate_set_rsa_export_params = libgnutls.gnutls_certificate_set_rsa_export_params +-gnutls_certificate_set_rsa_export_params.argtypes = [gnutls_certificate_credentials_t, gnutls_rsa_params_t] +-gnutls_certificate_set_rsa_export_params.restype = None - - gnutls_certificate_send_x509_rdn_sequence = libgnutls.gnutls_certificate_send_x509_rdn_sequence - gnutls_certificate_send_x509_rdn_sequence.argtypes = [gnutls_session_t, c_int] - gnutls_certificate_send_x509_rdn_sequence.restype = None -@@ -221,10 +213,6 @@ - gnutls_certificate_type_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)] - gnutls_certificate_type_set_priority.restype = c_int + gnutls_certificate_set_verify_flags = libgnutls.gnutls_certificate_set_verify_flags + gnutls_certificate_set_verify_flags.argtypes = [gnutls_certificate_credentials_t, c_uint] + gnutls_certificate_set_verify_flags.restype = None +@@ -209,10 +201,6 @@ + gnutls_certificate_type_list.argtypes = [] + gnutls_certificate_type_list.restype = POINTER(gnutls_certificate_type_t) --gnutls_certificate_verify_peers = libgnutls.gnutls_certificate_verify_peers --gnutls_certificate_verify_peers.argtypes = [gnutls_session_t] --gnutls_certificate_verify_peers.restype = c_int +-gnutls_certificate_type_set_priority = libgnutls.gnutls_certificate_type_set_priority +-gnutls_certificate_type_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)] +-gnutls_certificate_type_set_priority.restype = c_int - gnutls_certificate_verify_peers2 = libgnutls.gnutls_certificate_verify_peers2 gnutls_certificate_verify_peers2.argtypes = [gnutls_session_t, POINTER(c_uint)] gnutls_certificate_verify_peers2.restype = c_int -@@ -393,10 +381,6 @@ - gnutls_error_to_alert.argtypes = [c_int, POINTER(c_int)] - gnutls_error_to_alert.restype = c_int +@@ -245,10 +233,6 @@ + gnutls_cipher_list.argtypes = [] + gnutls_cipher_list.restype = POINTER(gnutls_cipher_algorithm_t) --gnutls_extra_check_version = libgnutls_extra.gnutls_extra_check_version --gnutls_extra_check_version.argtypes = [c_char_p] --gnutls_extra_check_version.restype = c_char_p +-gnutls_cipher_set_priority = libgnutls.gnutls_cipher_set_priority +-gnutls_cipher_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)] +-gnutls_cipher_set_priority.restype = c_int - - gnutls_fingerprint = libgnutls.gnutls_fingerprint - gnutls_fingerprint.argtypes = [gnutls_digest_algorithm_t, POINTER(gnutls_datum_t), c_void_p, POINTER(size_t)] - gnutls_fingerprint.restype = c_int -@@ -409,10 +393,6 @@ - gnutls_global_init.argtypes = [] - gnutls_global_init.restype = c_int + gnutls_cipher_suite_get_name = libgnutls.gnutls_cipher_suite_get_name + gnutls_cipher_suite_get_name.argtypes = [gnutls_kx_algorithm_t, gnutls_cipher_algorithm_t, gnutls_mac_algorithm_t] + gnutls_cipher_suite_get_name.restype = c_char_p +@@ -273,10 +257,6 @@ + gnutls_compression_list.argtypes = [] + gnutls_compression_list.restype = POINTER(gnutls_compression_method_t) --gnutls_global_init_extra = libgnutls_extra.gnutls_global_init_extra --gnutls_global_init_extra.argtypes = [] --gnutls_global_init_extra.restype = c_int +-gnutls_compression_set_priority = libgnutls.gnutls_compression_set_priority +-gnutls_compression_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)] +-gnutls_compression_set_priority.restype = c_int - - gnutls_global_set_log_function = libgnutls.gnutls_global_set_log_function - gnutls_global_set_log_function.argtypes = [gnutls_log_func] - gnutls_global_set_log_function.restype = None -@@ -461,86 +441,6 @@ - gnutls_hex_encode.argtypes = [POINTER(gnutls_datum_t), c_char_p, POINTER(size_t)] - gnutls_hex_encode.restype = c_int + gnutls_credentials_clear = libgnutls.gnutls_credentials_clear + gnutls_credentials_clear.argtypes = [gnutls_session_t] + gnutls_credentials_clear.restype = None +@@ -465,10 +445,6 @@ + gnutls_kx_list.argtypes = [] + gnutls_kx_list.restype = POINTER(gnutls_kx_algorithm_t) --gnutls_ia_allocate_client_credentials = libgnutls_extra.gnutls_ia_allocate_client_credentials --gnutls_ia_allocate_client_credentials.argtypes = [POINTER(gnutls_ia_client_credentials_t)] --gnutls_ia_allocate_client_credentials.restype = c_int +-gnutls_kx_set_priority = libgnutls.gnutls_kx_set_priority +-gnutls_kx_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)] +-gnutls_kx_set_priority.restype = c_int - --gnutls_ia_allocate_server_credentials = libgnutls_extra.gnutls_ia_allocate_server_credentials --gnutls_ia_allocate_server_credentials.argtypes = [POINTER(gnutls_ia_server_credentials_t)] --gnutls_ia_allocate_server_credentials.restype = c_int + gnutls_mac_get = libgnutls.gnutls_mac_get + gnutls_mac_get.argtypes = [gnutls_session_t] + gnutls_mac_get.restype = gnutls_mac_algorithm_t +@@ -489,26 +465,14 @@ + gnutls_mac_list.argtypes = [] + gnutls_mac_list.restype = POINTER(gnutls_mac_algorithm_t) + +-gnutls_mac_set_priority = libgnutls.gnutls_mac_set_priority +-gnutls_mac_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)] +-gnutls_mac_set_priority.restype = c_int - --gnutls_ia_enable = libgnutls_extra.gnutls_ia_enable --gnutls_ia_enable.argtypes = [gnutls_session_t, c_int] --gnutls_ia_enable.restype = None + gnutls_pem_base64_decode = libgnutls.gnutls_pem_base64_decode + gnutls_pem_base64_decode.argtypes = [c_char_p, POINTER(gnutls_datum_t), POINTER(c_ubyte), POINTER(size_t)] + gnutls_pem_base64_decode.restype = c_int + +-gnutls_pem_base64_decode_alloc = libgnutls.gnutls_pem_base64_decode_alloc +-gnutls_pem_base64_decode_alloc.argtypes = [c_char_p, POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)] +-gnutls_pem_base64_decode_alloc.restype = c_int - --gnutls_ia_endphase_send = libgnutls_extra.gnutls_ia_endphase_send --gnutls_ia_endphase_send.argtypes = [gnutls_session_t, c_int] --gnutls_ia_endphase_send.restype = c_int + gnutls_pem_base64_encode = libgnutls.gnutls_pem_base64_encode + gnutls_pem_base64_encode.argtypes = [c_char_p, POINTER(gnutls_datum_t), c_char_p, POINTER(size_t)] + gnutls_pem_base64_encode.restype = c_int + +-gnutls_pem_base64_encode_alloc = libgnutls.gnutls_pem_base64_encode_alloc +-gnutls_pem_base64_encode_alloc.argtypes = [c_char_p, POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)] +-gnutls_pem_base64_encode_alloc.restype = c_int - --gnutls_ia_extract_inner_secret = libgnutls_extra.gnutls_ia_extract_inner_secret --gnutls_ia_extract_inner_secret.argtypes = [gnutls_session_t, c_char_p] --gnutls_ia_extract_inner_secret.restype = None + gnutls_perror = libgnutls.gnutls_perror + gnutls_perror.argtypes = [c_int] + gnutls_perror.restype = None +@@ -613,10 +577,6 @@ + gnutls_protocol_list.argtypes = [] + gnutls_protocol_list.restype = POINTER(gnutls_protocol_t) + +-gnutls_protocol_set_priority = libgnutls.gnutls_protocol_set_priority +-gnutls_protocol_set_priority.argtypes = [gnutls_session_t, POINTER(c_int)] +-gnutls_protocol_set_priority.restype = c_int - --gnutls_ia_free_client_credentials = libgnutls_extra.gnutls_ia_free_client_credentials --gnutls_ia_free_client_credentials.argtypes = [gnutls_ia_client_credentials_t] --gnutls_ia_free_client_credentials.restype = None + gnutls_psk_allocate_client_credentials = libgnutls.gnutls_psk_allocate_client_credentials + gnutls_psk_allocate_client_credentials.argtypes = [POINTER(gnutls_psk_client_credentials_t)] + gnutls_psk_allocate_client_credentials.restype = c_int +@@ -705,46 +665,6 @@ + gnutls_rehandshake.argtypes = [gnutls_session_t] + gnutls_rehandshake.restype = c_int + +-gnutls_rsa_export_get_modulus_bits = libgnutls.gnutls_rsa_export_get_modulus_bits +-gnutls_rsa_export_get_modulus_bits.argtypes = [gnutls_session_t] +-gnutls_rsa_export_get_modulus_bits.restype = c_int - --gnutls_ia_free_server_credentials = libgnutls_extra.gnutls_ia_free_server_credentials --gnutls_ia_free_server_credentials.argtypes = [gnutls_ia_server_credentials_t] --gnutls_ia_free_server_credentials.restype = None +-gnutls_rsa_export_get_pubkey = libgnutls.gnutls_rsa_export_get_pubkey +-gnutls_rsa_export_get_pubkey.argtypes = [gnutls_session_t, POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)] +-gnutls_rsa_export_get_pubkey.restype = c_int - --gnutls_ia_generate_challenge = libgnutls_extra.gnutls_ia_generate_challenge --gnutls_ia_generate_challenge.argtypes = [gnutls_session_t, size_t, c_char_p] --gnutls_ia_generate_challenge.restype = c_int +-gnutls_rsa_params_cpy = libgnutls.gnutls_rsa_params_cpy +-gnutls_rsa_params_cpy.argtypes = [gnutls_rsa_params_t, gnutls_rsa_params_t] +-gnutls_rsa_params_cpy.restype = c_int - --gnutls_ia_get_client_avp_ptr = libgnutls_extra.gnutls_ia_get_client_avp_ptr --gnutls_ia_get_client_avp_ptr.argtypes = [gnutls_ia_client_credentials_t] --gnutls_ia_get_client_avp_ptr.restype = c_void_p +-gnutls_rsa_params_deinit = libgnutls.gnutls_rsa_params_deinit +-gnutls_rsa_params_deinit.argtypes = [gnutls_rsa_params_t] +-gnutls_rsa_params_deinit.restype = None - --gnutls_ia_get_server_avp_ptr = libgnutls_extra.gnutls_ia_get_server_avp_ptr --gnutls_ia_get_server_avp_ptr.argtypes = [gnutls_ia_server_credentials_t] --gnutls_ia_get_server_avp_ptr.restype = c_void_p +-gnutls_rsa_params_export_pkcs1 = libgnutls.gnutls_rsa_params_export_pkcs1 +-gnutls_rsa_params_export_pkcs1.argtypes = [gnutls_rsa_params_t, gnutls_x509_crt_fmt_t, POINTER(c_ubyte), POINTER(size_t)] +-gnutls_rsa_params_export_pkcs1.restype = c_int - --gnutls_ia_handshake = libgnutls_extra.gnutls_ia_handshake --gnutls_ia_handshake.argtypes = [gnutls_session_t] --gnutls_ia_handshake.restype = c_int +-gnutls_rsa_params_export_raw = libgnutls.gnutls_rsa_params_export_raw +-gnutls_rsa_params_export_raw.argtypes = [gnutls_rsa_params_t, POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(c_uint)] +-gnutls_rsa_params_export_raw.restype = c_int - --gnutls_ia_handshake_p = libgnutls_extra.gnutls_ia_handshake_p --gnutls_ia_handshake_p.argtypes = [gnutls_session_t] --gnutls_ia_handshake_p.restype = c_int +-gnutls_rsa_params_generate2 = libgnutls.gnutls_rsa_params_generate2 +-gnutls_rsa_params_generate2.argtypes = [gnutls_rsa_params_t, c_uint] +-gnutls_rsa_params_generate2.restype = c_int - --gnutls_ia_permute_inner_secret = libgnutls_extra.gnutls_ia_permute_inner_secret --gnutls_ia_permute_inner_secret.argtypes = [gnutls_session_t, size_t, c_char_p] --gnutls_ia_permute_inner_secret.restype = c_int +-gnutls_rsa_params_import_pkcs1 = libgnutls.gnutls_rsa_params_import_pkcs1 +-gnutls_rsa_params_import_pkcs1.argtypes = [gnutls_rsa_params_t, POINTER(gnutls_datum_t), gnutls_x509_crt_fmt_t] +-gnutls_rsa_params_import_pkcs1.restype = c_int - --gnutls_ia_recv = libgnutls_extra.gnutls_ia_recv --gnutls_ia_recv.argtypes = [gnutls_session_t, c_char_p, size_t] --gnutls_ia_recv.restype = ssize_t +-gnutls_rsa_params_import_raw = libgnutls.gnutls_rsa_params_import_raw +-gnutls_rsa_params_import_raw.argtypes = [gnutls_rsa_params_t, POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)] +-gnutls_rsa_params_import_raw.restype = c_int - --gnutls_ia_send = libgnutls_extra.gnutls_ia_send --gnutls_ia_send.argtypes = [gnutls_session_t, c_char_p, size_t] --gnutls_ia_send.restype = ssize_t +-gnutls_rsa_params_init = libgnutls.gnutls_rsa_params_init +-gnutls_rsa_params_init.argtypes = [POINTER(gnutls_rsa_params_t)] +-gnutls_rsa_params_init.restype = c_int - --gnutls_ia_set_client_avp_function = libgnutls_extra.gnutls_ia_set_client_avp_function --gnutls_ia_set_client_avp_function.argtypes = [gnutls_ia_client_credentials_t, gnutls_ia_avp_func] --gnutls_ia_set_client_avp_function.restype = None + gnutls_server_name_get = libgnutls.gnutls_server_name_get + gnutls_server_name_get.argtypes = [gnutls_session_t, c_void_p, POINTER(size_t), POINTER(c_uint), c_uint] + gnutls_server_name_get.restype = c_int +@@ -785,10 +705,6 @@ + gnutls_session_set_ptr.argtypes = [gnutls_session_t, c_void_p] + gnutls_session_set_ptr.restype = None + +-gnutls_set_default_export_priority = libgnutls.gnutls_set_default_export_priority +-gnutls_set_default_export_priority.argtypes = [gnutls_session_t] +-gnutls_set_default_export_priority.restype = c_int - --gnutls_ia_set_client_avp_ptr = libgnutls_extra.gnutls_ia_set_client_avp_ptr --gnutls_ia_set_client_avp_ptr.argtypes = [gnutls_ia_client_credentials_t, c_void_p] --gnutls_ia_set_client_avp_ptr.restype = None + gnutls_set_default_priority = libgnutls.gnutls_set_default_priority + gnutls_set_default_priority.argtypes = [gnutls_session_t] + gnutls_set_default_priority.restype = c_int +@@ -797,14 +713,6 @@ + gnutls_sign_get_name.argtypes = [gnutls_sign_algorithm_t] + gnutls_sign_get_name.restype = c_char_p + +-gnutls_sign_callback_get = libgnutls.gnutls_sign_callback_get +-gnutls_sign_callback_get.argtypes = [gnutls_session_t, POINTER(c_void_p)] +-gnutls_sign_callback_get.restype = gnutls_sign_func - --gnutls_ia_set_server_avp_function = libgnutls_extra.gnutls_ia_set_server_avp_function --gnutls_ia_set_server_avp_function.argtypes = [gnutls_ia_server_credentials_t, gnutls_ia_avp_func] --gnutls_ia_set_server_avp_function.restype = None +-gnutls_sign_callback_set = libgnutls.gnutls_sign_callback_set +-gnutls_sign_callback_set.argtypes = [gnutls_session_t, gnutls_sign_func, c_void_p] +-gnutls_sign_callback_set.restype = None - --gnutls_ia_set_server_avp_ptr = libgnutls_extra.gnutls_ia_set_server_avp_ptr --gnutls_ia_set_server_avp_ptr.argtypes = [gnutls_ia_server_credentials_t, c_void_p] --gnutls_ia_set_server_avp_ptr.restype = None -- --gnutls_ia_verify_endphase = libgnutls_extra.gnutls_ia_verify_endphase --gnutls_ia_verify_endphase.argtypes = [gnutls_session_t, c_char_p] --gnutls_ia_verify_endphase.restype = c_int -- - gnutls_init = libgnutls.gnutls_init - gnutls_init.argtypes = [POINTER(gnutls_session_t), gnutls_connection_end_t] - gnutls_init.restype = c_int -@@ -733,10 +633,6 @@ - gnutls_psk_free_server_credentials.argtypes = [gnutls_psk_server_credentials_t] - gnutls_psk_free_server_credentials.restype = None + gnutls_strerror = libgnutls.gnutls_strerror + gnutls_strerror.argtypes = [c_int] + gnutls_strerror.restype = c_char_p +@@ -1285,10 +1193,6 @@ + gnutls_x509_crt_verify.argtypes = [gnutls_x509_crt_t, POINTER(gnutls_x509_crt_t), c_int, c_uint, POINTER(c_uint)] + gnutls_x509_crt_verify.restype = c_int --gnutls_psk_netconf_derive_key = libgnutls.gnutls_psk_netconf_derive_key --gnutls_psk_netconf_derive_key.argtypes = [c_char_p, c_char_p, c_char_p, POINTER(gnutls_datum_t)] --gnutls_psk_netconf_derive_key.restype = c_int +-gnutls_x509_crt_verify_data = libgnutls.gnutls_x509_crt_verify_data +-gnutls_x509_crt_verify_data.argtypes = [gnutls_x509_crt_t, c_uint, POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)] +-gnutls_x509_crt_verify_data.restype = c_int - - gnutls_psk_server_get_username = libgnutls.gnutls_psk_server_get_username - gnutls_psk_server_get_username.argtypes = [gnutls_session_t] - gnutls_psk_server_get_username.restype = c_char_p -@@ -857,10 +753,6 @@ - gnutls_session_enable_compatibility_mode.argtypes = [gnutls_session_t] - gnutls_session_enable_compatibility_mode.restype = None + gnutls_x509_dn_deinit = libgnutls.gnutls_x509_dn_deinit + gnutls_x509_dn_deinit.argtypes = [gnutls_x509_dn_t] + gnutls_x509_dn_deinit.restype = None +@@ -1708,18 +1612,10 @@ + gnutls_srp_base64_decode.argtypes = [POINTER(gnutls_datum_t), c_char_p, POINTER(size_t)] + gnutls_srp_base64_decode.restype = c_int --gnutls_session_get_client_random = libgnutls.gnutls_session_get_client_random --gnutls_session_get_client_random.argtypes = [gnutls_session_t] --gnutls_session_get_client_random.restype = c_void_p +- gnutls_srp_base64_decode_alloc = libgnutls.gnutls_srp_base64_decode_alloc +- gnutls_srp_base64_decode_alloc.argtypes = [POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)] +- gnutls_srp_base64_decode_alloc.restype = c_int - - gnutls_session_get_data = libgnutls.gnutls_session_get_data - gnutls_session_get_data.argtypes = [gnutls_session_t, c_void_p, POINTER(size_t)] - gnutls_session_get_data.restype = c_int -@@ -873,18 +765,10 @@ - gnutls_session_get_id.argtypes = [gnutls_session_t, c_void_p, POINTER(size_t)] - gnutls_session_get_id.restype = c_int + gnutls_srp_base64_encode = libgnutls.gnutls_srp_base64_encode + gnutls_srp_base64_encode.argtypes = [POINTER(gnutls_datum_t), c_char_p, POINTER(size_t)] + gnutls_srp_base64_encode.restype = c_int --gnutls_session_get_master_secret = libgnutls.gnutls_session_get_master_secret --gnutls_session_get_master_secret.argtypes = [gnutls_session_t] --gnutls_session_get_master_secret.restype = c_void_p +- gnutls_srp_base64_encode_alloc = libgnutls.gnutls_srp_base64_encode_alloc +- gnutls_srp_base64_encode_alloc.argtypes = [POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)] +- gnutls_srp_base64_encode_alloc.restype = c_int - - gnutls_session_get_ptr = libgnutls.gnutls_session_get_ptr - gnutls_session_get_ptr.argtypes = [gnutls_session_t] - gnutls_session_get_ptr.restype = c_void_p + gnutls_srp_free_client_credentials = libgnutls.gnutls_srp_free_client_credentials + gnutls_srp_free_client_credentials.argtypes = [gnutls_srp_client_credentials_t] + gnutls_srp_free_client_credentials.restype = None +diff -wbBur python-gnutls-2.0.1.org/gnutls/library/types.py python-gnutls-2.0.1/gnutls/library/types.py +--- python-gnutls-2.0.1.org/gnutls/library/types.py 2010-01-22 11:20:36.000000000 +0300 ++++ python-gnutls-2.0.1/gnutls/library/types.py 2015-04-20 20:29:35.621935109 +0300 +@@ -27,6 +27,7 @@ + gnutls_certificate_status_t = c_int # enum + gnutls_certificate_type_t = c_int # enum + gnutls_certificate_verify_flags = c_int # enum ++gnutls_privkey_type_t = c_int # enum + gnutls_cipher_algorithm_t = c_int # enum + gnutls_close_request_t = c_int # enum + gnutls_compression_method_t = c_int # enum +@@ -76,11 +77,10 @@ + class gnutls_x509_privkey_int(Structure): + _fields_ = [] + gnutls_x509_privkey_t = POINTER(gnutls_x509_privkey_int) +-gnutls_rsa_params_t = POINTER(gnutls_x509_privkey_int) --gnutls_session_get_server_random = libgnutls.gnutls_session_get_server_random --gnutls_session_get_server_random.argtypes = [gnutls_session_t] --gnutls_session_get_server_random.restype = c_void_p -- - gnutls_session_is_resumed = libgnutls.gnutls_session_is_resumed - gnutls_session_is_resumed.argtypes = [gnutls_session_t] - gnutls_session_is_resumed.restype = c_int -@@ -905,10 +789,6 @@ - gnutls_set_default_priority.argtypes = [gnutls_session_t] - gnutls_set_default_priority.restype = c_int + class params(Union): + _fields_ = [('dh', gnutls_dh_params_t), +- ('rsa_export', gnutls_rsa_params_t)] ++ ('rsa_export', gnutls_x509_privkey_t)] --gnutls_sign_algorithm_get_name = libgnutls.gnutls_sign_algorithm_get_name --gnutls_sign_algorithm_get_name.argtypes = [gnutls_sign_algorithm_t] --gnutls_sign_algorithm_get_name.restype = c_char_p -- - gnutls_sign_callback_get = libgnutls.gnutls_sign_callback_get - gnutls_sign_callback_get.argtypes = [gnutls_session_t, POINTER(c_void_p)] - gnutls_sign_callback_get.restype = gnutls_sign_func -@@ -937,14 +817,6 @@ - gnutls_transport_set_errno.argtypes = [gnutls_session_t, c_int] - gnutls_transport_set_errno.restype = None + class gnutls_priority_st(Structure): + _fields_ = [] +@@ -153,8 +153,9 @@ + _fields_ = [('x509', gnutls_x509_privkey_t), + ('pgp', gnutls_openpgp_privkey_t)] --gnutls_transport_set_global_errno = libgnutls.gnutls_transport_set_global_errno --gnutls_transport_set_global_errno.argtypes = [c_int] --gnutls_transport_set_global_errno.restype = None -- --gnutls_transport_set_lowat = libgnutls.gnutls_transport_set_lowat --gnutls_transport_set_lowat.argtypes = [gnutls_session_t, c_int] --gnutls_transport_set_lowat.restype = None -- - gnutls_transport_set_ptr = libgnutls.gnutls_transport_set_ptr - gnutls_transport_set_ptr.argtypes = [gnutls_session_t, gnutls_transport_ptr_t] - gnutls_transport_set_ptr.restype = None -@@ -1501,10 +1373,6 @@ - gnutls_x509_privkey_sign_hash.argtypes = [gnutls_x509_privkey_t, POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)] - gnutls_x509_privkey_sign_hash.restype = c_int +-class gnutls_retr_st(Structure): +- _fields_ = [('type', gnutls_certificate_type_t), ++class gnutls_retr2_st(Structure): ++ _fields_ = [('cert_type', gnutls_certificate_type_t), ++ ('key_type', gnutls_privkey_type_t), + ('cert', cert), + ('ncerts', c_uint), + ('key', key), +@@ -179,8 +180,7 @@ --gnutls_x509_privkey_verify_data = libgnutls.gnutls_x509_privkey_verify_data --gnutls_x509_privkey_verify_data.argtypes = [gnutls_x509_privkey_t, c_uint, POINTER(gnutls_datum_t), POINTER(gnutls_datum_t)] --gnutls_x509_privkey_verify_data.restype = c_int -- - gnutls_x509_rdn_get = libgnutls.gnutls_x509_rdn_get - gnutls_x509_rdn_get.argtypes = [POINTER(gnutls_datum_t), c_char_p, POINTER(size_t)] - gnutls_x509_rdn_get.restype = c_int + gnutls_alloc_function = CFUNCTYPE(c_void_p, size_t) + gnutls_calloc_function = CFUNCTYPE(c_void_p, size_t, size_t) +-gnutls_certificate_client_retrieve_function = CFUNCTYPE(c_int, gnutls_session_t, POINTER(gnutls_datum_t), c_int, POINTER(gnutls_pk_algorithm_t), c_int, POINTER(gnutls_retr_st)) +-gnutls_certificate_server_retrieve_function = CFUNCTYPE(c_int, gnutls_session_t, POINTER(gnutls_retr_st)) ++gnutls_certificate_retrieve_function2 = CFUNCTYPE(c_int, gnutls_session_t, c_void_p, c_int, c_void_p, c_int, POINTER(gnutls_retr2_st)) + gnutls_db_remove_func = CFUNCTYPE(c_int, c_void_p, gnutls_datum_t) + gnutls_db_retr_func = CFUNCTYPE(gnutls_datum_t, c_void_p, gnutls_datum_t) + gnutls_db_store_func = CFUNCTYPE(c_int, c_void_p, gnutls_datum_t, gnutls_datum_t) Modified: libraryinit.patch =================================================================== --- libraryinit.patch 2015-04-20 16:49:46 UTC (rev 131754) +++ libraryinit.patch 2015-04-20 18:33:18 UTC (rev 131755) @@ -1,40 +1,12 @@ ---- gnutls/library/__init__.py 2013-12-12 20:29:45.000000000 +0400 -+++ gnutls.fixed/library/__init__.py 2013-12-17 20:56:48.637256402 +0400 -@@ -104,10 +104,11 @@ - libgcrypt = load_library(name='gcrypt', version=11) - gcry_control = libgcrypt.gcry_control - else: -- gcry_control = libgnutls.gcry_control -+ libgcrypt = load_library(name='gcrypt', version=20) -+ gcry_control = libgcrypt.gcry_control +diff -wbBur python-gnutls-2.0.1/gnutls/library/__init__.py python-gnutls-2.0.1.my/gnutls/library/__init__.py +--- python-gnutls-2.0.1/gnutls/library/__init__.py 2014-06-26 20:01:34.000000000 +0400 ++++ python-gnutls-2.0.1.my/gnutls/library/__init__.py 2015-04-20 17:43:39.153403713 +0300 +@@ -56,7 +56,7 @@ + raise RuntimeError('cannot find libgnutls on this system') - gcry_control(GCRYCTL_SET_THREAD_CBS, c_void_p(gcrypt_thread_callbacks_ptr)) -- libgnutls.gcry_check_version('1.2.4') # GNUTLS_MIN_LIBGCRYPT_VERSION -+ libgcrypt.gcry_check_version('1.2.4') # GNUTLS_MIN_LIBGCRYPT_VERSION - if system == 'cygwin': - gcry_control(GCRYCTL_DISABLE_SECMEM, 0) - else: -@@ -118,12 +119,10 @@ - - --libgnutls = load_library(name='gnutls', version=26) --libgnutls_extra = load_library(name='gnutls-extra', version=26) -+libgnutls = load_library(name='gnutls', version=28) - - initialize_gcrypt() +-libgnutls = load_library(version=28) ++libgnutls = load_library(version=30) libgnutls.gnutls_global_init() --libgnutls_extra.gnutls_global_init_extra() - from gnutls.library import constants -@@ -137,9 +136,6 @@ - if functions.gnutls_check_version(__need_version__) is None: - version = functions.gnutls_check_version(None) - raise RuntimeError("Found GNUTLS library version %s, but at least version %s is required" % (version, __need_version__)) --if functions.gnutls_extra_check_version(__need_version__) is None: -- version = functions.gnutls_extra_check_version(None) -- raise RuntimeError("Found GNUTLS extra library version %s, but at least version %s is required" % (version, __need_version__)) - - - del get_system_name, library_locations, load_library, initialize_gcrypt
