Hello community,
here is the log from the commit of package python-ndg-httpsclient for
openSUSE:Factory checked in at 2019-06-01 09:55:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ndg-httpsclient (Old)
and /work/SRC/openSUSE:Factory/.python-ndg-httpsclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ndg-httpsclient"
Sat Jun 1 09:55:03 2019 rev:4 rq:706328 version:0.5.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-ndg-httpsclient/python-ndg-httpsclient.changes
2018-12-24 11:40:05.369521454 +0100
+++
/work/SRC/openSUSE:Factory/.python-ndg-httpsclient.new.5148/python-ndg-httpsclient.changes
2019-06-01 09:55:07.143209180 +0200
@@ -1,0 +2,15 @@
+Wed May 29 12:54:21 UTC 2019 - Marketa Calabkova <[email protected]>
+
+- update to version 0.5.1
+ 0.5.*
+ * Drop support for EOL Python 2.6 and 3.3
+ * Updated SSL Context objects to default to TLS 1.2
+ * Fix to Subject Alternative Name handling to allow for
+ certificates with more than 64 names (max now 1024).
+ 0.4.*
+ * Fix to ndg namespace package warning issue
+ * Minor fix for installation: set minimum release for pyasn1
+ * Fix to bug in ndg.httpsclient.utils.open_url - duplicate open call.
+ * Moved LICENSE file into package
+
+-------------------------------------------------------------------
Old:
----
ndg_httpsclient-0.4.0.tar.gz
New:
----
ndg_httpsclient-0.5.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ndg-httpsclient.spec ++++++
--- /var/tmp/diff_new_pack.JlfEON/_old 2019-06-01 09:55:07.907208920 +0200
+++ /var/tmp/diff_new_pack.JlfEON/_new 2019-06-01 09:55:07.911208919 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-ndg-httpsclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,17 +18,18 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-ndg-httpsclient
-Version: 0.4.0
+Version: 0.5.1
Release: 0
Summary: Provides enhanced HTTPS support for httplib and urllib2 using
PyOpenSSL
License: BSD-2-Clause
Group: Development/Languages/Python
-Url: https://github.com/cedadev/ndg_httpsclient/
+URL: https://github.com/cedadev/ndg_httpsclient/
Source:
https://files.pythonhosted.org/packages/source/n/ndg_httpsclient/ndg_httpsclient-%{version}.tar.gz
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
+Requires: python-pyOpenSSL
+Requires: python-pyasn1 >= 0.1.1
BuildArch: noarch
%python_subpackages
@@ -38,13 +39,6 @@
default provided with Python and importantly enables full verification of the
SSL peer.
-Prerequisites
-=============
-This has been developed and tested for Python 2.6 and 2.7 with pyOpenSSL 0.13
and 0.14.
-Version 0.4.0 tested with pyOpenSSL 0.15.1 and Python 2.7 and 3.4. Note that
proxy support
-is only available from Python 2.6.2 onwards. pyasn1 is required for correct
SSL
-verification with subjectAltNames.
-
%prep
%setup -q -n ndg_httpsclient-%{version}
@@ -53,10 +47,13 @@
%install
%python_install
-%fdupes %{buildroot}
+%python_expand %fdupes %{buildroot}%{$python_sitelib}
+
+# tests require internet connection
%files %{python_files}
-%defattr(-,root,root,-)
+%doc README.md
+%license ndg/httpsclient/LICENSE
%{python_sitelib}/*
%python3_only %{_bindir}/ndg_httpclient
++++++ ndg_httpsclient-0.4.0.tar.gz -> ndg_httpsclient-0.5.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ndg_httpsclient-0.4.0/PKG-INFO
new/ndg_httpsclient-0.5.1/PKG-INFO
--- old/ndg_httpsclient-0.4.0/PKG-INFO 2015-05-04 09:24:39.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/PKG-INFO 2018-07-23 18:02:43.000000000 +0200
@@ -1,19 +1,64 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
Name: ndg_httpsclient
-Version: 0.4.0
+Version: 0.5.1
Summary: Provides enhanced HTTPS support for httplib and urllib2 using
PyOpenSSL
Home-page: https://github.com/cedadev/ndg_httpsclient/
Author: Richard Wilkinson and Philip Kershaw
Author-email: [email protected]
-License: BSD - See LICENCE file for details
-Description:
- This is a HTTPS client implementation for httplib and urllib2 based on
- PyOpenSSL. PyOpenSSL provides a more fully featured SSL
implementation over the
- default provided with Python and importantly enables full verification
of the
- SSL peer.
+License: BSD - See ndg/httpsclient/LICENCE file for details
+Description: A HTTPS client implementation for
+ * ``httplib`` (Python 2), ``http.client`` (Python 3) and
+ * ``urllib2`` (Python 2) and ``urllib`` (Python 3)
+
+ ... based on PyOpenSSL. PyOpenSSL provides a more fully featured SSL
implementation
+ over the default provided with Python and importantly enables full
verification
+ of the SSL peer using ``pyasn1``.
Releases
========
+ 0.5.1
+ -----
+ * Clean up handling for description file - pull in content from this
file into setup()
+ * Allows the nightly build to fail
+ * Add Trove version classifiers to make it explicit what is supported
+ * Add python_requires to help pip
+ * Drop support for EOL Python 2.6 and 3.3
+
+ Thanks to @hugovk for contributions
+
+ 0.5.0
+ -----
+ * Fix to Subject Alternative Name handling to allow for certificates
with
+ more than 64 names (max now 1024). Thanks to Matt Pegler
+ * Fix to subjectAltName string to use byte type for correct matching
+ * Updated SSL Context objects to default to TLS 1.2
+
+ 0.4.4
+ -----
+ * Updated test certificates
+
+ 0.4.3
+ -----
+ * Fix to ``ndg`` namespace package warning issue
(https://github.com/cedadev/ndg_httpsclient/issues/3).
+ ``__init__.py`` file now included in ``ndg`` directory so that
there are no longer warnings with imports
+ when using Python 2.x. Thanks to Max Mauntner for fix.
+ * Minor fix for installation: set minimum release for ``pyasn1`` to
avoid conflicts with Ubuntu
+ install - see https://github.com/cedadev/ndg_httpsclient/issues/5
and
+ https://github.com/cedadev/ndg_httpsclient/pull/10. ``pyasn1``
also becomes mandatory rather
+ than optional package for install. - It required by
``cryptography`` anyway which is a
+ dependency for ``pyOpenSSL`` from version 0.14.
+
+ 0.4.2
+ -----
+ * Fix to bug in ``ndg.httpsclient.utils.open_url`` - duplicate open
call.
+ Nb. This bug and the fix DO NOT affect the ``httplib``and
``urllib2``
+ interfaces that this package provides.
+
+ 0.4.1
+ -----
+ * Added explicit ref to Python 3 in classifier text for Python 3
checking tools.
+ * Moved LICENSE file into package
+
0.4.0
-----
* Made dual compatible with Python 2 / 3.
@@ -35,13 +80,13 @@
0.3.1
-----
- * extended utils functions to support keyword for passing additional
urllib2
+ * extended utils functions to support keyword for passing additional
``urllib2``
handlers.
0.3.0
-----
- * Added ndg.httpsclient.utils.fetch_stream_from_url function and added
- parameter for data to post in open_url and fetch_* methods.
+ * Added ``ndg.httpsclient.utils.fetch_stream_from_url`` function and
added
+ parameter for data to post in ``open_url`` and ``fetch_*`` methods.
* fix to ndg.httpsclient.utils module _should_use_proxy and open_url
functions
0.2.0
@@ -55,14 +100,14 @@
Prerequisites
=============
- This has been developed and tested for Python 2.6 and 2.7 with
pyOpenSSL 0.13 and 0.14.
- Version 0.4.0 tested with pyOpenSSL 0.15.1 and Python 2.7 and 3.4.
Note that proxy support
- is only available from Python 2.6.2 onwards. pyasn1 is required for
correct SSL
- verification with subjectAltNames.
+ This has been developed and tested for Python 2.7 with pyOpenSSL 0.13
+ and 0.14. Version 0.4.0 tested with ``pyOpenSSL`` 0.15.1 and Python
2.7 and
+ 3.4.
+ ``pyasn1`` is required for correct SSL verification with
``subjectAltNames``.
Installation
============
- Installation can be performed using easy_install or pip.
+ Installation can be performed using ``easy_install`` or ``pip``.
Running ndg_httpclient
======================
@@ -99,9 +144,10 @@
``-n, --no-verify-peer``
Skip verification of peer certificate.
+
Platform: UNKNOWN
-Classifier: Development Status :: 3 - Alpha
+Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: End Users/Desktop
@@ -113,9 +159,17 @@
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Security
Classifier: Topic :: Internet
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: System :: Distributed Computing
Classifier: Topic :: System :: Systems Administration ::
Authentication/Directory
Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
+Description-Content-Type: text/markdown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ndg_httpsclient-0.4.0/README.md
new/ndg_httpsclient-0.5.1/README.md
--- old/ndg_httpsclient-0.4.0/README.md 1970-01-01 01:00:00.000000000 +0100
+++ new/ndg_httpsclient-0.5.1/README.md 2018-07-20 14:12:59.000000000 +0200
@@ -0,0 +1,139 @@
+A HTTPS client implementation for
+ * ``httplib`` (Python 2), ``http.client`` (Python 3) and
+ * ``urllib2`` (Python 2) and ``urllib`` (Python 3)
+
+... based on PyOpenSSL. PyOpenSSL provides a more fully featured SSL
implementation
+over the default provided with Python and importantly enables full
verification
+of the SSL peer using ``pyasn1``.
+
+Releases
+========
+0.5.1
+-----
+ * Clean up handling for description file - pull in content from this file
into setup()
+ * Allows the nightly build to fail
+ * Add Trove version classifiers to make it explicit what is supported
+ * Add python_requires to help pip
+ * Drop support for EOL Python 2.6 and 3.3
+
+Thanks to @hugovk for contributions
+
+0.5.0
+-----
+ * Fix to Subject Alternative Name handling to allow for certificates with
+ more than 64 names (max now 1024). Thanks to Matt Pegler
+ * Fix to subjectAltName string to use byte type for correct matching
+ * Updated SSL Context objects to default to TLS 1.2
+
+0.4.4
+-----
+ * Updated test certificates
+
+0.4.3
+-----
+ * Fix to ``ndg`` namespace package warning issue
(https://github.com/cedadev/ndg_httpsclient/issues/3).
+ ``__init__.py`` file now included in ``ndg`` directory so that there are no
longer warnings with imports
+ when using Python 2.x. Thanks to Max Mauntner for fix.
+ * Minor fix for installation: set minimum release for ``pyasn1`` to avoid
conflicts with Ubuntu
+ install - see https://github.com/cedadev/ndg_httpsclient/issues/5 and
+ https://github.com/cedadev/ndg_httpsclient/pull/10. ``pyasn1`` also
becomes mandatory rather
+ than optional package for install. - It required by ``cryptography``
anyway which is a
+ dependency for ``pyOpenSSL`` from version 0.14.
+
+0.4.2
+-----
+ * Fix to bug in ``ndg.httpsclient.utils.open_url`` - duplicate open call.
+ Nb. This bug and the fix DO NOT affect the ``httplib``and ``urllib2``
+ interfaces that this package provides.
+
+0.4.1
+-----
+ * Added explicit ref to Python 3 in classifier text for Python 3 checking
tools.
+ * Moved LICENSE file into package
+
+0.4.0
+-----
+ * Made dual compatible with Python 2 / 3.
+
+0.3.3
+-----
+ * Fix to add in AnotherName for ``subjectAltNames`` field - added for support
for CACert issued
+ certs (thanks to Gu1).
+ * Fix to HTTP Basic Auth option for ``ndg.httpsclient.utils.main``
+ * Fix to ``ServerSSLCertVerification`` so that it can pass a function-based
callback instead of using ``__call__``. In newer versions of OpenSSL (>= 0.14)
the latter failed because of a request for ``__name__`` attribute.
+
+0.3.2
+-----
+ * Fix to SubjectAltNames support check - should only be enabled if pyasn1 is
+ installed.
+ * Fix to open_url: HTTP Request object was being created inside if headers is
+ None block - now corrected to create regardless.
+ * Added http basic auth support to script. (Thanks to Willem van Engen)
+
+0.3.1
+-----
+ * extended utils functions to support keyword for passing additional
``urllib2``
+ handlers.
+
+0.3.0
+-----
+ * Added ``ndg.httpsclient.utils.fetch_stream_from_url`` function and added
+ parameter for data to post in ``open_url`` and ``fetch_*`` methods.
+ * fix to ndg.httpsclient.utils module _should_use_proxy and open_url functions
+
+0.2.0
+-----
+ * added support for SSL verification with subjectAltNames using pyasn1
+ * fixed minor bug - SSL cert DN prefix matching
+
+0.1.0
+-----
+Initial release
+
+Prerequisites
+=============
+This has been developed and tested for Python 2.7 with pyOpenSSL 0.13
+and 0.14. Version 0.4.0 tested with ``pyOpenSSL`` 0.15.1 and Python 2.7 and
+3.4.
+``pyasn1`` is required for correct SSL verification with ``subjectAltNames``.
+
+Installation
+============
+Installation can be performed using ``easy_install`` or ``pip``.
+
+Running ndg_httpclient
+======================
+A simple script for fetching data using HTTP or HTTPS GET from a specified URL.
+
+Parameter:
+
+``url``
+ The URL of the resource to be fetched
+
+Options:
+
+``-h, --help``
+ Show help message and exit.
+
+``-c FILE, --certificate=FILE``
+ Certificate file - defaults to ``$HOME/credentials.pem``
+
+``-k FILE, --private-key=FILE``
+ Private key file - defaults to the certificate file
+
+``-t DIR, --ca-certificate-dir=DIR``
+ Trusted CA certificate file directory.
+
+``-d, --debug``
+ Print debug information - this may be useful in solving problems with HTTP
or
+ HTTPS access to a server.
+
+``-p FILE, --post-data-file=FILE``
+ POST data file
+
+``-f FILE, --fetch=FILE``
+ Output file
+
+``-n, --no-verify-peer``
+ Skip verification of peer certificate.
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ndg_httpsclient-0.4.0/ndg/__init__.py
new/ndg_httpsclient-0.5.1/ndg/__init__.py
--- old/ndg_httpsclient-0.4.0/ndg/__init__.py 2015-04-16 16:24:36.000000000
+0200
+++ new/ndg_httpsclient-0.5.1/ndg/__init__.py 2017-09-01 16:19:18.000000000
+0200
@@ -1,19 +1 @@
-"""ndg_httpsclient - PyOpenSSL utility to make a httplib-like interface
suitable
-for use with urllib2
-
-This is a setuptools namespace_package. DO NOT place any other
-code in this file! There is no guarantee that it will be installed
-with easy_install. See:
-
-http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
-
-... for details.
-"""
-__author__ = "P J Kershaw"
-__date__ = "06/01/12"
-__copyright__ = "(C) 2012 Science and Technology Facilities Council"
-__license__ = "BSD - see LICENSE file in top-level directory"
-__contact__ = "[email protected]"
-__revision__ = '$Id$'
-
-__import__('pkg_resources').declare_namespace(__name__)
\ No newline at end of file
+__path__ = __import__('pkgutil').extend_path(__path__, __name__)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ndg_httpsclient-0.4.0/ndg/httpsclient/LICENSE
new/ndg_httpsclient-0.5.1/ndg/httpsclient/LICENSE
--- old/ndg_httpsclient-0.4.0/ndg/httpsclient/LICENSE 1970-01-01
01:00:00.000000000 +0100
+++ new/ndg_httpsclient-0.5.1/ndg/httpsclient/LICENSE 2017-09-01
12:56:40.000000000 +0200
@@ -0,0 +1,26 @@
+Copyright (c) 2012, Science & Technology Facilities Council (STFC)
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of the Science & Technology Facilities Council (STFC)
+ nor the names of its contributors may be used to endorse or promote
+ products derived from this software without specific prior written
+ permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ndg_httpsclient-0.4.0/ndg/httpsclient/https.py
new/ndg_httpsclient-0.5.1/ndg/httpsclient/https.py
--- old/ndg_httpsclient-0.4.0/ndg/httpsclient/https.py 2015-05-04
09:23:56.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg/httpsclient/https.py 2018-07-20
14:31:15.000000000 +0200
@@ -48,7 +48,7 @@
@type default_ssl_method: int
"""
default_port = HTTPS_PORT
- default_ssl_method = SSL.SSLv23_METHOD
+ default_ssl_method = SSL.TLSv1_2_METHOD
def __init__(self, host, port=None, strict=None,
timeout=socket._GLOBAL_DEFAULT_TIMEOUT, ssl_context=None):
@@ -78,7 +78,7 @@
sock = socket.create_connection((self.host, self.port), self.timeout)
- # Tunnel if using a proxy - ONLY available for Python 2.6.2 and above
+ # Tunnel if using a proxy - ONLY available for Python 2.6.2 and above
if getattr(self, '_tunnel_host', None):
self.sock = sock
self._tunnel()
@@ -100,6 +100,8 @@
'''
https_request = AbstractHTTPHandler.do_request_
+ SSL_METHOD = SSL.TLSv1_2_METHOD
+
def __init__(self, ssl_context, debuglevel=0):
"""
@param ssl_context:SSL context
@@ -116,7 +118,7 @@
ssl_context)
self.ssl_context = ssl_context
else:
- self.ssl_context = SSL.Context(SSL.TLSv1_METHOD)
+ self.ssl_context = SSL.Context(self.__class__.SSL_METHOD)
def https_open(self, req):
"""Opens HTTPS request
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg/httpsclient/ssl_context_util.py
new/ndg_httpsclient-0.5.1/ndg/httpsclient/ssl_context_util.py
--- old/ndg_httpsclient-0.4.0/ndg/httpsclient/ssl_context_util.py
2015-05-04 09:23:56.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg/httpsclient/ssl_context_util.py
2018-04-24 10:42:46.000000000 +0200
@@ -41,7 +41,7 @@
def make_ssl_context(key_file=None, cert_file=None, pem_file=None, ca_dir=None,
- verify_peer=False, url=None, method=SSL.TLSv1_METHOD,
+ verify_peer=False, url=None, method=SSL.TLSv1_2_METHOD,
key_file_passphrase=None):
"""
Creates SSL context containing certificate and key file locations.
@@ -64,6 +64,8 @@
if pem_file or ca_dir:
ssl_context.load_verify_locations(pem_file, ca_dir)
+ else:
+ ssl_context.set_default_verify_paths() # Use OS CA bundle
def _callback(conn, x509, errnum, errdepth, preverify_ok):
"""Default certification verification callback.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg/httpsclient/ssl_peer_verification.py
new/ndg_httpsclient-0.5.1/ndg/httpsclient/ssl_peer_verification.py
--- old/ndg_httpsclient-0.4.0/ndg/httpsclient/ssl_peer_verification.py
2015-05-04 09:23:56.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg/httpsclient/ssl_peer_verification.py
2018-04-24 10:42:46.000000000 +0200
@@ -40,8 +40,9 @@
'domainComponent': 'DC',
'userid': 'UID'
}
- SUBJ_ALT_NAME_EXT_NAME = 'subjectAltName'
- PARSER_RE_STR = '/(%s)=' % '|'.join(list(DN_LUT.keys()) +
list(DN_LUT.values()))
+ SUBJ_ALT_NAME_EXT_NAME = b'subjectAltName'
+ PARSER_RE_STR = '/(%s)=' % '|'.join(list(DN_LUT.keys()) + \
+ list(DN_LUT.values()))
PARSER_RE = re.compile(PARSER_RE_STR)
__slots__ = ('__hostname', '__certDN', '__subj_alt_name_match')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg/httpsclient/subj_alt_name.py
new/ndg_httpsclient-0.5.1/ndg/httpsclient/subj_alt_name.py
--- old/ndg_httpsclient-0.4.0/ndg/httpsclient/subj_alt_name.py 2015-05-04
09:23:56.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg/httpsclient/subj_alt_name.py 2018-04-24
10:44:45.000000000 +0200
@@ -25,7 +25,7 @@
raise Pyasn1ImportError(import_error_msg)
-MAX = 64
+MAX = 1024
class DirectoryString(univ.Choice):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/__init__.py
new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/__init__.py
--- old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/__init__.py 2015-04-16
16:24:36.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/__init__.py 2018-04-24
10:42:46.000000000 +0200
@@ -16,11 +16,13 @@
'''Convenience base class from which other unit tests can extend. Its
sets the generic data directory path'''
PORT = 4443
+# PORT = 443
PORT2 = 4444
HOSTNAME = 'localhost'
+# HOSTNAME = 'files.pythonhosted.org'
TEST_URI = 'https://%s:%d' % (HOSTNAME, PORT)
TEST_URI2 = 'https://%s:%d' % (HOSTNAME, PORT2)
-
+
UNITTEST_DIR = os.path.dirname(os.path.abspath(__file__))
CACERT_DIR = os.path.join(UNITTEST_DIR, 'pki', 'ca')
SSL_CERT_FILENAME = 'localhost.crt'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/pki/ca/08bd99c7.0
new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/pki/ca/08bd99c7.0
--- old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/pki/ca/08bd99c7.0
2015-05-04 09:23:56.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/pki/ca/08bd99c7.0
1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDLjCCAhagAwIBAgIBATANBgkqhkiG9w0BAQUFADA3MREwDwYDVQQLDAhTZWN1
-cml0eTEUMBIGA1UEAwwLTkRHIFRlc3QgQ0ExDDAKBgNVBAoMA05ERzAeFw0xNTAx
-MjExNDMzMThaFw0yMDAxMjAxNDMzMThaMDcxETAPBgNVBAsMCFNlY3VyaXR5MRQw
-EgYDVQQDDAtOREcgVGVzdCBDQTEMMAoGA1UECgwDTkRHMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEArq4QKUTRq45nCDR/p+OlHIIN8+ugUbiCfteazbTG
-rX8vIQ9HxSuz/xvxTw+E0KgA4YSK2SJJP4QiCjlMKYS3Rt8o361GNtnRmeo5qyBu
-GMSv73XL1uuqumggUZyrhhksckR7gyNFnKVXzZjAQPepsT0xBjs5uEAEqXJzAf+r
-24AnT3MZRh7gsyEe3sZjd75kZVwcrWhrocyKlMCR77yEr+uP4pg+dEMhDMKKxlaF
-C5RPMotOpWm/7AToHrGia34WSmcxvuOwxOkI4xEW6mxWMaVTBCXUh6Wb/0m/x8Nv
-9VvS2UBC4sCp4MqlDpySxQpT1RgrhMTEmtUOh50l4eEhdwIDAQABo0UwQzASBgNV
-HRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUkEvQjGOP
-Oj5DZEvsm96AdiiFXWgwDQYJKoZIhvcNAQEFBQADggEBAGD0kQASmNzvtYL+JUGf
-gTPyJhADl9Ai9GvZJsY/wX0IRTxRl5y08Dqlg3qyGG3GzL918cr1sVCYnLepNQES
-T0MIz50DCKGryNSc74JHPDxpYaSV6whmNH5iwh8fy6tmJwF3FWbGXD2ddc+ofJqP
-WPPJtzqxuuJ6iXQIFqD9mEn3iXVcvFuSzpdpH9paORTKB0j4gya9zctB8LP0ZXIE
-//wREc+4msnmoTn+qkFAOPBg9WnvoipfyCXPgbTagxlofVjZ7gAgYIefqhXBTQdd
-5tnYdyQQBRcUXQS2bBX03q8ftcxOjc3SvXI4MvrqofuFPwu4GnrspnC0KQYlXwEI
-7ds=
------END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/pki/ca/7e15277f.0
new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/pki/ca/7e15277f.0
--- old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/pki/ca/7e15277f.0
1970-01-01 01:00:00.000000000 +0100
+++ new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/pki/ca/7e15277f.0
2018-01-29 10:06:54.000000000 +0100
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDLjCCAhagAwIBAgIBATANBgkqhkiG9w0BAQsFADA3MRQwEgYDVQQDDAtOREcg
+VGVzdCBDQTEMMAoGA1UECgwDTkRHMREwDwYDVQQLDAhTZWN1cml0eTAeFw0xNjEy
+MTUyMTMyNDNaFw0yMTEyMTQyMTMyNDNaMDcxFDASBgNVBAMMC05ERyBUZXN0IENB
+MQwwCgYDVQQKDANOREcxETAPBgNVBAsMCFNlY3VyaXR5MIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEAv8L7md7A3NvKIYndyjHV7f1xVH6gJ8JPrecxAiVs
+nidsYUm8saBV/dFf1jPMQ6hdjIuxLXlopLxThkHlCes/OTxLzBFLvFQQaxLExTsX
+OmgeM4q20a2JLTqkmItPIYDVTYgi0EaF+I9Z1BwWGEfYr3uTizpr48rnzpXgRwrZ
+rjRc53zLKpeqyBs7Qmg5Jlzmk/A+UWJ2ryCWLY9KFE3uPstybYpwq7YayD6upVwc
+vedhh+zpXU3E9r/cnlZ4sKSP2M1QSOTb2l5XnlOU/MLODYW70uItNqs1j1XPuHYh
+/ikO+jmjPUtL0IE47+LcaMU6BpaOCLzcjsSn/DDMYcDB7wIDAQABo0UwQzASBgNV
+HRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU9S+bGqsW
+uQzR/yHDdHoU6afNTE0wDQYJKoZIhvcNAQELBQADggEBAF2scAHd7xjgnJqAUX0b
+7f7QKjpuYHrt48tH+pFOh5j3IgdOqTgRLc/N8lEqoH4M0lKZKbBerM9FiQ4eXCwy
+3Rswn3wXPvi3HJGgvZYUt8J6KY5+syHU4iuzuSHOjznC0lLZkRz6kfZHX+paqro4
+1CsHhCt3ew17QMWEP6UtfZfBCg+kiEfBtSsTUIth0HgdH033PWh5v+nOzGN+3o2t
+ORlzpttV+0RLlsw54l51I6rCEnfKOKtEy491JUs2whUwzp9v8tG4jev3PDVWhSSS
+6jaSNvW4v7SDH0pnw52ZWzaRtA/pV/dCQOlqJ87wDNPdoVGpwqtYF/7Zdw2ty4gU
+oSM=
+-----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/pki/ca/ade0138a.0
new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/pki/ca/ade0138a.0
--- old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/pki/ca/ade0138a.0
2015-05-04 09:23:56.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/pki/ca/ade0138a.0
1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDLjCCAhagAwIBAgIBATANBgkqhkiG9w0BAQUFADA3MREwDwYDVQQLDAhTZWN1
-cml0eTEUMBIGA1UEAwwLTkRHIFRlc3QgQ0ExDDAKBgNVBAoMA05ERzAeFw0xNTAx
-MjExNDMzMThaFw0yMDAxMjAxNDMzMThaMDcxETAPBgNVBAsMCFNlY3VyaXR5MRQw
-EgYDVQQDDAtOREcgVGVzdCBDQTEMMAoGA1UECgwDTkRHMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEArq4QKUTRq45nCDR/p+OlHIIN8+ugUbiCfteazbTG
-rX8vIQ9HxSuz/xvxTw+E0KgA4YSK2SJJP4QiCjlMKYS3Rt8o361GNtnRmeo5qyBu
-GMSv73XL1uuqumggUZyrhhksckR7gyNFnKVXzZjAQPepsT0xBjs5uEAEqXJzAf+r
-24AnT3MZRh7gsyEe3sZjd75kZVwcrWhrocyKlMCR77yEr+uP4pg+dEMhDMKKxlaF
-C5RPMotOpWm/7AToHrGia34WSmcxvuOwxOkI4xEW6mxWMaVTBCXUh6Wb/0m/x8Nv
-9VvS2UBC4sCp4MqlDpySxQpT1RgrhMTEmtUOh50l4eEhdwIDAQABo0UwQzASBgNV
-HRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUkEvQjGOP
-Oj5DZEvsm96AdiiFXWgwDQYJKoZIhvcNAQEFBQADggEBAGD0kQASmNzvtYL+JUGf
-gTPyJhADl9Ai9GvZJsY/wX0IRTxRl5y08Dqlg3qyGG3GzL918cr1sVCYnLepNQES
-T0MIz50DCKGryNSc74JHPDxpYaSV6whmNH5iwh8fy6tmJwF3FWbGXD2ddc+ofJqP
-WPPJtzqxuuJ6iXQIFqD9mEn3iXVcvFuSzpdpH9paORTKB0j4gya9zctB8LP0ZXIE
-//wREc+4msnmoTn+qkFAOPBg9WnvoipfyCXPgbTagxlofVjZ7gAgYIefqhXBTQdd
-5tnYdyQQBRcUXQS2bBX03q8ftcxOjc3SvXI4MvrqofuFPwu4GnrspnC0KQYlXwEI
-7ds=
------END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/pki/localhost.crt
new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/pki/localhost.crt
--- old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/pki/localhost.crt
2015-05-04 09:23:56.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/pki/localhost.crt
2018-01-29 10:06:54.000000000 +0100
@@ -1,82 +1,19 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: OU=Security, CN=NDG Test CA, O=NDG
- Validity
- Not Before: Jan 21 14:45:01 2015 GMT
- Not After : Jan 20 14:45:01 2018 GMT
- Subject: O=NDG, OU=Security, CN=localhost
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public Key: (2048 bit)
- Modulus (2048 bit):
- 00:e3:29:45:fc:56:2d:a2:21:b6:49:c6:6a:ef:b3:
- ed:d3:32:47:77:d9:85:ef:e5:6a:db:70:8b:5d:41:
- 4d:b5:76:f5:96:42:5a:f7:82:a5:bb:b3:e1:f9:ac:
- c6:b7:71:61:f4:4d:dd:28:f6:b1:ef:65:dc:5a:8c:
- 47:b1:17:38:e1:8a:5f:40:b0:bb:a0:87:61:a7:72:
- f8:c1:a1:5f:3b:f7:94:b5:cb:c3:50:84:ef:a8:13:
- d4:92:ff:af:3a:d1:31:42:90:4b:58:4c:84:47:a6:
- 3a:a3:3d:c1:9a:43:3c:10:f6:8a:b5:97:11:b7:74:
- ab:32:92:be:9a:fc:ef:5e:45:78:30:61:67:10:63:
- 09:ef:61:b7:1c:47:cc:69:c9:e7:27:8f:4d:97:33:
- 59:33:b8:47:89:86:4c:cd:a4:38:7c:d0:60:ee:52:
- c8:e1:2a:f1:3b:9b:e9:7c:d5:af:88:33:91:9c:10:
- 63:89:01:03:fb:26:5e:3f:61:c3:b4:f0:fb:1f:ad:
- e8:d2:49:8e:2f:16:81:bb:9c:d6:a5:48:91:58:7d:
- ac:ac:2c:02:8a:f2:f4:22:80:1f:8c:32:5b:b5:77:
- d0:36:e9:27:9a:9f:31:67:d5:4e:32:8d:cf:ce:73:
- ef:88:86:e9:3c:53:e6:09:55:02:2b:86:7d:91:8d:
- fb:53
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:FALSE
- Netscape Comment:
- OpenSSL Generated Certificate
- X509v3 Subject Key Identifier:
- A3:77:23:B5:1C:98:85:C8:6D:31:40:1C:2F:20:57:CD:C9:36:74:1B
- X509v3 Authority Key Identifier:
-
keyid:90:4B:D0:8C:63:8F:3A:3E:43:64:4B:EC:9B:DE:80:76:28:85:5D:68
-
- X509v3 Subject Alternative Name:
- DNS:localhost
- Signature Algorithm: sha1WithRSAEncryption
- 33:b4:87:0e:2c:71:88:6d:ab:cc:14:c8:3f:1e:8d:e5:ed:26:
- 6b:b8:76:93:29:b1:0b:c5:e7:41:6f:14:62:8f:e1:81:bb:02:
- 13:5c:b2:34:b7:94:f2:7d:1e:fe:e7:89:0b:2e:56:30:58:eb:
- 90:d4:05:5b:18:d9:c5:68:61:c0:f6:f7:1a:0f:14:d8:89:8e:
- ee:ec:59:b8:48:96:58:33:2e:98:95:56:c3:02:e9:93:cd:3f:
- 4c:0d:b5:b5:b6:6e:6f:95:5f:65:eb:1a:ce:56:20:e2:72:d4:
- f7:58:5f:c0:7b:49:5f:ac:6b:01:7b:c8:f0:13:19:03:dd:4e:
- 05:55:f9:31:52:ea:45:eb:54:b9:4b:a2:3f:22:c7:11:47:8a:
- 94:b4:e9:9e:c0:09:96:72:66:ba:01:d3:f3:00:6e:24:ca:a9:
- 6d:8e:7f:0b:a0:fd:f9:c9:4f:3a:36:07:c7:4a:c7:c7:1f:c7:
- e0:2d:c3:21:d0:44:68:81:38:af:ce:cb:38:be:db:02:3d:ba:
- 62:00:43:94:22:c8:d7:43:cd:db:73:23:9d:28:aa:d6:4c:08:
- 45:8f:b5:1d:04:c7:2b:8e:22:12:e6:af:cd:9c:13:db:c9:76:
- f4:0c:10:25:fa:5c:46:77:7d:e5:ee:16:b4:f1:24:94:22:06:
- 85:40:0c:5f
-----BEGIN CERTIFICATE-----
-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
+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
+vAMwOmVKhtgKvbaGcYa6efM=
-----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/pki/localhost.key
new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/pki/localhost.key
--- old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/pki/localhost.key
2015-05-04 09:23:56.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/pki/localhost.key
2018-01-29 10:06:54.000000000 +0100
@@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
-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
+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
-----END RSA PRIVATE KEY-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/test_https.py
new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/test_https.py
--- old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/test_https.py
2015-05-04 09:23:56.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/test_https.py
2018-04-24 10:42:46.000000000 +0200
@@ -38,7 +38,7 @@
self.assertRaises(socket.error, conn.connect)
def test03_ssl_verification_of_peer_fails(self):
- ctx = SSL.Context(SSL.TLSv1_METHOD)
+ ctx = SSL.Context(SSL.TLSv1_2_METHOD)
def verify_callback(conn, x509, errnum, errdepth, preverify_ok):
log.debug('SSL peer certificate verification failed for %r',
@@ -57,7 +57,7 @@
self.assertRaises(SSL.Error, conn.request, 'GET', '/')
def test03_ssl_verification_of_peer_succeeds(self):
- ctx = SSL.Context(SSL.TLSv1_METHOD)
+ ctx = SSL.Context(SSL.TLSv1_2_METHOD)
verify_callback = lambda conn, x509, errnum, errdepth, preverify_ok: \
preverify_ok
@@ -76,7 +76,7 @@
print('Response = %s' % resp.read())
def test04_ssl_verification_with_subj_alt_name(self):
- ctx = SSL.Context(SSL.TLSv1_METHOD)
+ ctx = SSL.Context(SSL.TLSv1_2_METHOD)
verification = ServerSSLCertVerification(hostname='localhost')
verify_callback = verification.get_verify_server_cert_func()
@@ -95,7 +95,7 @@
print('Response = %s' % resp.read())
def test04_ssl_verification_with_subj_common_name(self):
- ctx = SSL.Context(SSL.TLSv1_METHOD)
+ ctx = SSL.Context(SSL.TLSv1_2_METHOD)
# Explicitly set verification of peer hostname using peer certificate
# subject common name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/test_urllib2.py
new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/test_urllib2.py
--- old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/test_urllib2.py
2015-05-04 09:23:56.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/test_urllib2.py
2018-04-24 10:42:46.000000000 +0200
@@ -12,15 +12,16 @@
import sys
if sys.version_info[0] > 2:
- from urllib.error import URLError as URLError_
+ from urllib.error import URLError as URLError
else:
- from urllib2 import URLError as URLError_
+ from urllib2 import URLError as URLError
import unittest
from OpenSSL import SSL
from ndg.httpsclient.test import Constants
from ndg.httpsclient.urllib2_build_opener import build_opener
+from ndg.httpsclient.ssl_peer_verification import ServerSSLCertVerification
class Urllib2TestCase(unittest.TestCase):
@@ -36,13 +37,15 @@
self.assertTrue(res)
print("res = %s" % res.read())
+ # Skip this test for remote service as it can take a long time to timeout
+ @unittest.skipIf(Constants.HOSTNAME != 'localhost', 'Skip non-local host')
def test03_open_fails_unknown_loc(self):
opener = build_opener()
- self.assertRaises(URLError_, opener.open, Constants.TEST_URI2)
+ self.assertRaises(URLError, opener.open, Constants.TEST_URI2)
def test04_open_peer_cert_verification_fails(self):
# Explicitly set empty CA directory to make verification fail
- ctx = SSL.Context(SSL.TLSv1_METHOD)
+ ctx = SSL.Context(SSL.TLSv1_2_METHOD)
verify_callback = lambda conn, x509, errnum, errdepth, preverify_ok: \
preverify_ok
@@ -50,7 +53,37 @@
ctx.load_verify_locations(None, './')
opener = build_opener(ssl_context=ctx)
self.assertRaises(SSL.Error, opener.open, Constants.TEST_URI)
+
+ def test05_open_with_subj_alt_names_verification(self):
+ ctx = SSL.Context(SSL.TLSv1_2_METHOD)
+
+ # Set wildcard hostname for subject alternative name matching -
+ # setting a minimum of two name components for hostname
+ split_hostname = Constants.HOSTNAME.split('.', 1)
+ if len(split_hostname) > 1:
+ _hostname = '*.' + split_hostname[-1]
+ else:
+ _hostname = Constants.HOSTNAME
+
+ server_ssl_verify = ServerSSLCertVerification(hostname=_hostname)
+ verify_callback_ = server_ssl_verify.get_verify_server_cert_func()
+ ctx.set_verify(SSL.VERIFY_PEER, verify_callback_)
+
+ # Set default verify paths if testing with peer that has corresponding
+ # CA cert in bundle provided with the OS. In this case, load verify
+ # locations is not needed.
+ #ctx.set_default_verify_paths()
+ ctx.set_verify_depth(9)
+
+ # Set correct location for CA certs to verify with
+ ctx.load_verify_locations(None, Constants.CACERT_DIR)
+
+ opener = build_opener(ssl_context=ctx)
+ res = opener.open(Constants.TEST_URI)
+ self.assertTrue(res)
+ print("res = %s" % res.read())
+
if __name__ == "__main__":
unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/test_utils.py
new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/test_utils.py
--- old/ndg_httpsclient-0.4.0/ndg/httpsclient/test/test_utils.py
2015-05-04 09:23:56.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg/httpsclient/test/test_utils.py
2018-04-24 10:42:46.000000000 +0200
@@ -23,17 +23,17 @@
'''Test ndg.httpsclient.utils module'''
def test01_configuration(self):
- config = Configuration(SSL.Context(SSL.TLSv1_METHOD), True)
+ config = Configuration(SSL.Context(SSL.TLSv1_2_METHOD), True)
self.assertTrue(config.ssl_context)
self.assertEqual(config.debug, True)
def test02_fetch_from_url(self):
- config = Configuration(SSL.Context(SSL.TLSv1_METHOD), True)
+ config = Configuration(SSL.Context(SSL.TLSv1_2_METHOD), True)
res = fetch_from_url(Constants.TEST_URI, config)
self.assertTrue(res)
def test03_open_url(self):
- config = Configuration(SSL.Context(SSL.TLSv1_METHOD), True)
+ config = Configuration(SSL.Context(SSL.TLSv1_2_METHOD), True)
res = open_url(Constants.TEST_URI, config)
self.assertEqual(res[0], 200,
'open_url for %r failed' % Constants.TEST_URI)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ndg_httpsclient-0.4.0/ndg/httpsclient/utils.py
new/ndg_httpsclient-0.5.1/ndg/httpsclient/utils.py
--- old/ndg_httpsclient-0.4.0/ndg/httpsclient/utils.py 2015-05-04
09:23:56.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg/httpsclient/utils.py 2017-09-01
12:56:40.000000000 +0200
@@ -188,8 +188,8 @@
# currently only supports http basic auth
auth_handler =
HTTPBasicAuthHandler_(HTTPPasswordMgrWithDefaultRealm_())
auth_handler.add_password(realm=None, uri=url,
- user=config.httpauth[0],
- passwd=config.httpauth[1])
+ user=config.http_basicauth[0],
+ passwd=config.http_basicauth[1])
handlers.append(auth_handler)
@@ -217,9 +217,6 @@
return_message = ''
response = None
- # FIXME
- response = opener.open(request)
-
try:
response = opener.open(request)
return_message = response.msg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg_httpsclient.egg-info/PKG-INFO
new/ndg_httpsclient-0.5.1/ndg_httpsclient.egg-info/PKG-INFO
--- old/ndg_httpsclient-0.4.0/ndg_httpsclient.egg-info/PKG-INFO 2015-05-04
09:24:38.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg_httpsclient.egg-info/PKG-INFO 2018-07-23
18:02:43.000000000 +0200
@@ -1,19 +1,64 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
Name: ndg-httpsclient
-Version: 0.4.0
+Version: 0.5.1
Summary: Provides enhanced HTTPS support for httplib and urllib2 using
PyOpenSSL
Home-page: https://github.com/cedadev/ndg_httpsclient/
Author: Richard Wilkinson and Philip Kershaw
Author-email: [email protected]
-License: BSD - See LICENCE file for details
-Description:
- This is a HTTPS client implementation for httplib and urllib2 based on
- PyOpenSSL. PyOpenSSL provides a more fully featured SSL
implementation over the
- default provided with Python and importantly enables full verification
of the
- SSL peer.
+License: BSD - See ndg/httpsclient/LICENCE file for details
+Description: A HTTPS client implementation for
+ * ``httplib`` (Python 2), ``http.client`` (Python 3) and
+ * ``urllib2`` (Python 2) and ``urllib`` (Python 3)
+
+ ... based on PyOpenSSL. PyOpenSSL provides a more fully featured SSL
implementation
+ over the default provided with Python and importantly enables full
verification
+ of the SSL peer using ``pyasn1``.
Releases
========
+ 0.5.1
+ -----
+ * Clean up handling for description file - pull in content from this
file into setup()
+ * Allows the nightly build to fail
+ * Add Trove version classifiers to make it explicit what is supported
+ * Add python_requires to help pip
+ * Drop support for EOL Python 2.6 and 3.3
+
+ Thanks to @hugovk for contributions
+
+ 0.5.0
+ -----
+ * Fix to Subject Alternative Name handling to allow for certificates
with
+ more than 64 names (max now 1024). Thanks to Matt Pegler
+ * Fix to subjectAltName string to use byte type for correct matching
+ * Updated SSL Context objects to default to TLS 1.2
+
+ 0.4.4
+ -----
+ * Updated test certificates
+
+ 0.4.3
+ -----
+ * Fix to ``ndg`` namespace package warning issue
(https://github.com/cedadev/ndg_httpsclient/issues/3).
+ ``__init__.py`` file now included in ``ndg`` directory so that
there are no longer warnings with imports
+ when using Python 2.x. Thanks to Max Mauntner for fix.
+ * Minor fix for installation: set minimum release for ``pyasn1`` to
avoid conflicts with Ubuntu
+ install - see https://github.com/cedadev/ndg_httpsclient/issues/5
and
+ https://github.com/cedadev/ndg_httpsclient/pull/10. ``pyasn1``
also becomes mandatory rather
+ than optional package for install. - It required by
``cryptography`` anyway which is a
+ dependency for ``pyOpenSSL`` from version 0.14.
+
+ 0.4.2
+ -----
+ * Fix to bug in ``ndg.httpsclient.utils.open_url`` - duplicate open
call.
+ Nb. This bug and the fix DO NOT affect the ``httplib``and
``urllib2``
+ interfaces that this package provides.
+
+ 0.4.1
+ -----
+ * Added explicit ref to Python 3 in classifier text for Python 3
checking tools.
+ * Moved LICENSE file into package
+
0.4.0
-----
* Made dual compatible with Python 2 / 3.
@@ -35,13 +80,13 @@
0.3.1
-----
- * extended utils functions to support keyword for passing additional
urllib2
+ * extended utils functions to support keyword for passing additional
``urllib2``
handlers.
0.3.0
-----
- * Added ndg.httpsclient.utils.fetch_stream_from_url function and added
- parameter for data to post in open_url and fetch_* methods.
+ * Added ``ndg.httpsclient.utils.fetch_stream_from_url`` function and
added
+ parameter for data to post in ``open_url`` and ``fetch_*`` methods.
* fix to ndg.httpsclient.utils module _should_use_proxy and open_url
functions
0.2.0
@@ -55,14 +100,14 @@
Prerequisites
=============
- This has been developed and tested for Python 2.6 and 2.7 with
pyOpenSSL 0.13 and 0.14.
- Version 0.4.0 tested with pyOpenSSL 0.15.1 and Python 2.7 and 3.4.
Note that proxy support
- is only available from Python 2.6.2 onwards. pyasn1 is required for
correct SSL
- verification with subjectAltNames.
+ This has been developed and tested for Python 2.7 with pyOpenSSL 0.13
+ and 0.14. Version 0.4.0 tested with ``pyOpenSSL`` 0.15.1 and Python
2.7 and
+ 3.4.
+ ``pyasn1`` is required for correct SSL verification with
``subjectAltNames``.
Installation
============
- Installation can be performed using easy_install or pip.
+ Installation can be performed using ``easy_install`` or ``pip``.
Running ndg_httpclient
======================
@@ -99,9 +144,10 @@
``-n, --no-verify-peer``
Skip verification of peer certificate.
+
Platform: UNKNOWN
-Classifier: Development Status :: 3 - Alpha
+Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: End Users/Desktop
@@ -113,9 +159,17 @@
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Security
Classifier: Topic :: Internet
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: System :: Distributed Computing
Classifier: Topic :: System :: Systems Administration ::
Authentication/Directory
Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
+Description-Content-Type: text/markdown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg_httpsclient.egg-info/SOURCES.txt
new/ndg_httpsclient-0.5.1/ndg_httpsclient.egg-info/SOURCES.txt
--- old/ndg_httpsclient-0.4.0/ndg_httpsclient.egg-info/SOURCES.txt
2015-05-04 09:24:39.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg_httpsclient.egg-info/SOURCES.txt
2018-07-23 18:02:43.000000000 +0200
@@ -1,7 +1,9 @@
MANIFEST.in
+README.md
setup.py
documentation/Makefile
ndg/__init__.py
+ndg/httpsclient/LICENSE
ndg/httpsclient/__init__.py
ndg/httpsclient/https.py
ndg/httpsclient/ssl_context_util.py
@@ -17,14 +19,12 @@
ndg/httpsclient/test/test_utils.py
ndg/httpsclient/test/pki/localhost.crt
ndg/httpsclient/test/pki/localhost.key
-ndg/httpsclient/test/pki/ca/08bd99c7.0
-ndg/httpsclient/test/pki/ca/ade0138a.0
+ndg/httpsclient/test/pki/ca/7e15277f.0
ndg/httpsclient/test/scripts/openssl_https_server.sh
ndg_httpsclient.egg-info/PKG-INFO
ndg_httpsclient.egg-info/SOURCES.txt
ndg_httpsclient.egg-info/dependency_links.txt
ndg_httpsclient.egg-info/entry_points.txt
-ndg_httpsclient.egg-info/namespace_packages.txt
ndg_httpsclient.egg-info/not-zip-safe
ndg_httpsclient.egg-info/requires.txt
ndg_httpsclient.egg-info/top_level.txt
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg_httpsclient.egg-info/namespace_packages.txt
new/ndg_httpsclient-0.5.1/ndg_httpsclient.egg-info/namespace_packages.txt
--- old/ndg_httpsclient-0.4.0/ndg_httpsclient.egg-info/namespace_packages.txt
2015-05-04 09:24:38.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg_httpsclient.egg-info/namespace_packages.txt
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-ndg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ndg_httpsclient-0.4.0/ndg_httpsclient.egg-info/requires.txt
new/ndg_httpsclient-0.5.1/ndg_httpsclient.egg-info/requires.txt
--- old/ndg_httpsclient-0.4.0/ndg_httpsclient.egg-info/requires.txt
2015-05-04 09:24:38.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/ndg_httpsclient.egg-info/requires.txt
2018-07-23 18:02:43.000000000 +0200
@@ -1,4 +1,2 @@
PyOpenSSL
-
-[subjectAltName_support]
-pyasn1
+pyasn1>=0.1.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ndg_httpsclient-0.4.0/setup.cfg
new/ndg_httpsclient-0.5.1/setup.cfg
--- old/ndg_httpsclient-0.4.0/setup.cfg 2015-05-04 09:24:39.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/setup.cfg 2018-07-23 18:02:43.000000000 +0200
@@ -1,5 +1,4 @@
[egg_info]
tag_build =
tag_date = 0
-tag_svn_revision = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ndg_httpsclient-0.4.0/setup.py
new/ndg_httpsclient-0.5.1/setup.py
--- old/ndg_httpsclient-0.4.0/setup.py 2015-05-04 09:23:56.000000000 +0200
+++ new/ndg_httpsclient-0.5.1/setup.py 2018-07-20 14:13:12.000000000 +0200
@@ -5,126 +5,36 @@
use_setuptools()
from setuptools import setup, find_packages
-_long_description = '''
-This is a HTTPS client implementation for httplib and urllib2 based on
-PyOpenSSL. PyOpenSSL provides a more fully featured SSL implementation over
the
-default provided with Python and importantly enables full verification of the
-SSL peer.
+NAMESPACE_PKGS = ['ndg']
-Releases
-========
-0.4.0
------
- * Made dual compatible with Python 2 / 3.
-
-0.3.3
------
- * Fix to add in AnotherName for ``subjectAltNames`` field - added for support
for CACert issued
- certs (thanks to Gu1).
- * Fix to HTTP Basic Auth option for ``ndg.httpsclient.utils.main``
- * Fix to ``ServerSSLCertVerification`` so that it can pass a function-based
callback instead of using ``__call__``. In newer versions of OpenSSL (>= 0.14)
the latter failed because of a request for ``__name__`` attribute.
+with open('README.md') as f:
+ _long_description = f.read()
-0.3.2
------
- * Fix to SubjectAltNames support check - should only be enabled if pyasn1 is
- installed.
- * Fix to open_url: HTTP Request object was being created inside if headers is
- None block - now corrected to create regardless.
- * Added http basic auth support to script. (Thanks to Willem van Engen)
-
-0.3.1
------
- * extended utils functions to support keyword for passing additional urllib2
- handlers.
-
-0.3.0
------
- * Added ndg.httpsclient.utils.fetch_stream_from_url function and added
- parameter for data to post in open_url and fetch_* methods.
- * fix to ndg.httpsclient.utils module _should_use_proxy and open_url functions
-
-0.2.0
------
- * added support for SSL verification with subjectAltNames using pyasn1
- * fixed minor bug - SSL cert DN prefix matching
-
-0.1.0
------
-Initial release
-
-Prerequisites
-=============
-This has been developed and tested for Python 2.6 and 2.7 with pyOpenSSL 0.13
and 0.14.
-Version 0.4.0 tested with pyOpenSSL 0.15.1 and Python 2.7 and 3.4. Note that
proxy support
-is only available from Python 2.6.2 onwards. pyasn1 is required for correct
SSL
-verification with subjectAltNames.
-
-Installation
-============
-Installation can be performed using easy_install or pip.
-
-Running ndg_httpclient
-======================
-A simple script for fetching data using HTTP or HTTPS GET from a specified URL.
-
-Parameter:
-
-``url``
- The URL of the resource to be fetched
-
-Options:
-
-``-h, --help``
- Show help message and exit.
-
-``-c FILE, --certificate=FILE``
- Certificate file - defaults to ``$HOME/credentials.pem``
-
-``-k FILE, --private-key=FILE``
- Private key file - defaults to the certificate file
-
-``-t DIR, --ca-certificate-dir=DIR``
- Trusted CA certificate file directory.
-
-``-d, --debug``
- Print debug information - this may be useful in solving problems with HTTP
or
- HTTPS access to a server.
-
-``-p FILE, --post-data-file=FILE``
- POST data file
-
-``-f FILE, --fetch=FILE``
- Output file
-
-``-n, --no-verify-peer``
- Skip verification of peer certificate.
-'''
-
setup(
name='ndg_httpsclient',
- version="0.4.0",
+ version="0.5.1",
description='Provides enhanced HTTPS support for httplib and urllib2 using
'
'PyOpenSSL',
author='Richard Wilkinson and Philip Kershaw',
author_email='[email protected]',
url='https://github.com/cedadev/ndg_httpsclient/',
long_description=_long_description,
- license='BSD - See LICENCE file for details',
- namespace_packages=['ndg'],
+ long_description_content_type='text/markdown',
+ license='BSD - See ndg/httpsclient/LICENCE file for details',
packages=find_packages(),
- package_dir={'ndg.httpsclient': 'ndg/httpsclient'},
package_data={
'ndg.httpsclient': [
- 'test/README',
+ 'LICENSE',
+ 'test/README',
'test/scripts/*.sh',
'test/pki/localhost.*',
'test/pki/ca/*.0'
],
},
- install_requires = ['PyOpenSSL'],
- extras_require = {'subjectAltName_support': 'pyasn1'},
- classifiers = [
- 'Development Status :: 3 - Alpha',
+ install_requires=['PyOpenSSL', 'pyasn1>=0.1.1'],
+ python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*',
+ classifiers=[
+ 'Development Status :: 5 - Production/Stable',
'Environment :: Console',
'Environment :: Web Environment',
'Intended Audience :: End Users/Desktop',
@@ -136,6 +46,12 @@
'Operating System :: Microsoft :: Windows',
'Operating System :: POSIX :: Linux',
'Programming Language :: Python',
+ 'Programming Language :: Python :: 2',
+ 'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 3',
+ 'Programming Language :: Python :: 3.4',
+ 'Programming Language :: Python :: 3.5',
+ 'Programming Language :: Python :: 3.6',
'Topic :: Security',
'Topic :: Internet',
'Topic :: Scientific/Engineering',
@@ -143,8 +59,8 @@
'Topic :: System :: Systems Administration ::
Authentication/Directory',
'Topic :: Software Development :: Libraries :: Python Modules'
],
- zip_safe = False,
- entry_points = {
+ zip_safe=False,
+ entry_points={
'console_scripts': ['ndg_httpclient = ndg.httpsclient.utils:main',
],
}