[Pkg-gtkpod-devel] Bug#840931: libimobiledevice4 GnuTLS settings broken with iOS 10

Nathan Kennedy ntk at hcoop.net
Sun Oct 16 08:36:10 UTC 2016


Package: libimobiledevice4
Version: 1.1.6+dfsg-3.1

On devices (iPhones) upgraded to iOS 10, there are errors that prevent 
connecting. I did not find this in deb bugs.

This was fixed in master upstream, using TLS1.0 instead of SSL3.0. We 
should really get this fixed in jessie (in 1.1.6), otherwise iOS 10 
devices become unusable with Debian.

Requires two commits:
13bf235cac2201747de11652cf14fe2714ca0718
72643b2b83990b9cf97cc84b285b30763d44a72d

After these, rebuilding and reinstalling, the iOS 10 devices works fine 
for me.

Nathan

Patch:
--- libimobiledevice-1.1.6+dfsg.orig/src/idevice.c
+++ libimobiledevice-1.1.6+dfsg/src/idevice.c
@@ -777,7 +777,7 @@ idevice_error_t idevice_connection_enabl
      }
      BIO_set_fd(ssl_bio, (int)(long)connection->data, BIO_NOCLOSE);

-    SSL_CTX *ssl_ctx = SSL_CTX_new(SSLv3_method());
+    SSL_CTX *ssl_ctx = SSL_CTX_new(TLSv1_method());
      if (ssl_ctx == NULL) {
          debug_info("ERROR: Could not create SSL context.");
          BIO_free(ssl_bio);
@@ -838,7 +838,7 @@ idevice_error_t idevice_connection_enabl
gnutls_certificate_allocate_credentials(&ssl_data_loc->certificate);
gnutls_certificate_client_set_retrieve_function(ssl_data_loc->certificate, 
internal_cert_callback);
      gnutls_init(&ssl_data_loc->session, GNUTLS_CLIENT);
-    gnutls_priority_set_direct(ssl_data_loc->session, 
"NONE:+VERS-SSL3.0:+ANON-DH:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA1:+MD5:+COMP-NULL", 
NULL);
+    gnutls_priority_set_direct(ssl_data_loc->session, 
"NONE:+VERS-TLS1.0:+ANON-DH:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA1:+MD5:+COMP-NULL", 
NULL);
      gnutls_credentials_set(ssl_data_loc->session, 
GNUTLS_CRD_CERTIFICATE, ssl_data_loc->certificate);
      gnutls_session_set_ptr(ssl_data_loc->session, ssl_data_loc);



More information about the Pkg-gtkpod-devel mailing list