Hello community, here is the log from the commit of package python-M2Crypto for openSUSE:Factory checked in at 2020-07-15 12:13:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-M2Crypto (Old) and /work/SRC/openSUSE:Factory/.python-M2Crypto.new.3060 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-M2Crypto" Wed Jul 15 12:13:19 2020 rev:36 rq:820764 version:0.36.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-M2Crypto/python-M2Crypto.changes 2020-04-15 20:07:33.714148682 +0200 +++ /work/SRC/openSUSE:Factory/.python-M2Crypto.new.3060/python-M2Crypto.changes 2020-07-15 12:14:31.172751788 +0200 @@ -1,0 +2,30 @@ +Mon Jul 13 21:07:34 UTC 2020 - Matej Cepl <mc...@suse.com> + +Update to 0.36.0: + - wrap SocketIO in io.Buffered* for makefile <lethliel> + - SSL.Connection.close accepts an argument to force the socket closing + <Christophe Haen> + - SSL.Connection: make the clientPostConnectionCheck an instance + attribute <Christophe Haen> + - Fixed bug with usage of unexisting method getreply at SSL_Transport + <roman-nagaev> + - Add appveyor builds for python 3.7 and 3.8 <Daniel A. Wozniak> + - Fixed syntax warning on line 44. <randomfox> + - Update M2Crypto.six to 1.13.0 <Matěj Cepl> + - base64.decodestring() was finally removed in Python 3.8. <Matěj Cepl> + - wrap SocketIO in io.Buffered* for makefile <lethliel> + - NULL is legal argument for key and iv paramters of EVP_CipherInit(3) + <Matěj Cepl> + - Expose X509_V_FLAG_ALLOW_PROXY_CERTS verification flag and + X509_STORE_SET_FLAGS function <Christophe Haen> + - Stop testing for 2.6 and 3.4 on Travis. Start testing 3.8 <Matěj Cepl> + - Extend test cert validity to 2049 <Bernhard M. Wiedemann> + - Revert using typing module in 2.6. It is just not worthy. <Matěj Cepl> + - Update Debian/stable SSL as well <Matěj Cepl> + - Make tests pass again. <Matěj Cepl> + - Stop using string module, which has been deprecated. <Matěj Cepl> + - Tiny fixes to make pyls more happy <Matěj Cepl> + - CI: Rework Fedora CI configuration <Neal Gompa> +- Remove upstream merged patch 001-fix-buffering-for-python38.patch. + +------------------------------------------------------------------- Old: ---- 001-fix-buffering-for-python38.patch M2Crypto-0.35.2.tar.gz New: ---- M2Crypto-0.36.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-M2Crypto.spec ++++++ --- /var/tmp/diff_new_pack.Mlg20N/_old 2020-07-15 12:14:36.560757430 +0200 +++ /var/tmp/diff_new_pack.Mlg20N/_new 2020-07-15 12:14:36.560757430 +0200 @@ -19,14 +19,13 @@ %define oldpython python %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-M2Crypto -Version: 0.35.2 +Version: 0.36.0 Release: 0 Summary: Crypto and SSL toolkit for Python License: MIT Group: Development/Languages/Python URL: https://gitlab.com/m2crypto/m2crypto Source: https://files.pythonhosted.org/packages/source/M/M2Crypto/M2Crypto-%{version}.tar.gz -Patch1: 001-fix-buffering-for-python38.patch BuildRequires: %{python_module devel} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module typing} @@ -78,9 +77,6 @@ %prep %setup -q -n M2Crypto-%{version} -%if 0%{?suse_version} > 1500 -%patch1 -p1 -%endif %build export CFLAGS="%{optflags}" ++++++ M2Crypto-0.35.2.tar.gz -> M2Crypto-0.36.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/.gitlab-ci.yml new/M2Crypto-0.36.0/.gitlab-ci.yml --- old/M2Crypto-0.35.2/.gitlab-ci.yml 2019-04-26 17:13:51.000000000 +0200 +++ new/M2Crypto-0.36.0/.gitlab-ci.yml 2020-01-30 09:17:01.000000000 +0100 @@ -19,7 +19,7 @@ when: always script: - apt-get update -q -y - - apt-get install -y swig libssl1.0-dev python-dev openssl python-twisted python-setuptools + - apt-get install -y swig libssl-dev python-dev openssl python-twisted python-setuptools - python setup.py clean build test python35: @@ -38,16 +38,24 @@ - apt-get install -y swig libssl-dev python3-dev openssl python3-setuptools python3-twisted - python3 setup.py clean build test +fedora-py2: + image: fedora:30 + when: always + script: + - dnf install --refresh -y @development-tools fedora-packager rpmdevtools + - dnf install -y swig python2-devel openssl-devel openssl python2-setuptools python2-twisted + - python2 setup.py clean build test + fedora: - image: fedora:26 + image: fedora:30 when: always script: - dnf install --refresh -y @development-tools fedora-packager rpmdevtools - - dnf install -y swig python-devel openssl-devel openssl python-setuptools python-twisted - - python setup.py clean build test + - dnf install -y swig python3-devel openssl-devel openssl python3-setuptools python3-twisted + - python3 setup.py clean build test -fedora3: - image: fedora:26 +fedora-rawhide: + image: registry.fedoraproject.org/fedora:rawhide when: always script: - dnf install --refresh -y @development-tools fedora-packager rpmdevtools diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/.travis.yml new/M2Crypto-0.36.0/.travis.yml --- old/M2Crypto-0.35.2/.travis.yml 2018-10-09 14:50:01.000000000 +0200 +++ new/M2Crypto-0.36.0/.travis.yml 2020-07-13 18:21:40.000000000 +0200 @@ -12,20 +12,18 @@ sudo: false python: - - "2.6" - "2.7" - - "3.4" - "3.5" - "3.6" - "3.7" + - "3.8" - "nightly" matrix: allow_failures: - - python: "3.7" - python: "nightly" install: - - if [[ $TRAVIS_PYTHON_VERSION == '2.6' ]]; then travis_retry pip install Twisted==15.0.0 ; else travis_retry pip install Twisted ; fi + - travis_retry pip install Twisted - python setup.py install script: python setup.py test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/CHANGES new/M2Crypto-0.36.0/CHANGES --- old/M2Crypto-0.35.2/CHANGES 2019-06-10 13:45:36.000000000 +0200 +++ new/M2Crypto-0.36.0/CHANGES 2020-07-13 23:03:42.000000000 +0200 @@ -1,3 +1,38 @@ +0.36.0 - 2020-07-13 +------------------- + +- wrap SocketIO in io.Buffered* for makefile <lethliel> +- SSL.Connection.close accepts an argument to force the socket closing + <Christophe Haen> +- SSL.Connection: make the clientPostConnectionCheck an instance + attribute <Christophe Haen> +- Fixed bug with usage of unexisting method getreply at SSL_Transport + <roman-nagaev> +- Add appveyor builds for python 3.7 and 3.8 <Daniel A. Wozniak> +- Fixed syntax warning on line 44. <randomfox> +- Update M2Crypto.six to 1.13.0 <Matěj Cepl> +- base64.decodestring() was finally removed in Python 3.8. <Matěj Cepl> +- wrap SocketIO in io.Buffered* for makefile <lethliel> +- NULL is legal argument for key and iv paramters of EVP_CipherInit(3) + <Matěj Cepl> +- Expose X509_V_FLAG_ALLOW_PROXY_CERTS verification flag and + X509_STORE_SET_FLAGS function <Christophe Haen> +- Stop testing for 2.6 and 3.4 on Travis. Start testing 3.8 <Matěj Cepl> +- Extend test cert validity to 2049 <Bernhard M. Wiedemann> +- Revert using typing module in 2.6. It is just not worthy. <Matěj Cepl> +- Update Debian/stable SSL as well <Matěj Cepl> +- Make tests pass again. <Matěj Cepl> +- Stop using string module, which has been deprecated. <Matěj Cepl> +- Tiny fixes to make pyls more happy <Matěj Cepl> +- CI: Rework Fedora CI configuration <Neal Gompa> + +0.35.2 - 2019-06-10 +------------------- + +- tests.test_rsa: Fix typo to match for proper exception <Sebastian + Andrzej Siewior> +- Expose CRLs verification flags <Christophe Haen> + 0.35.1 - 2019-06-08 ------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/M2Crypto/SSL/Connection.py new/M2Crypto-0.36.0/M2Crypto/SSL/Connection.py --- old/M2Crypto-0.35.2/M2Crypto/SSL/Connection.py 2018-10-09 14:50:01.000000000 +0200 +++ new/M2Crypto-0.36.0/M2Crypto/SSL/Connection.py 2020-07-13 22:55:20.000000000 +0200 @@ -12,6 +12,7 @@ import logging import socket +import io from M2Crypto import BIO, Err, X509, m2, py27plus, six, util # noqa from M2Crypto.SSL import Checker, Context, timeout # noqa @@ -19,7 +20,7 @@ from M2Crypto.SSL.Cipher import Cipher, Cipher_Stack from M2Crypto.SSL.Session import Session if py27plus: - from typing import Any, AnyStr, Callable, Dict, List, Optional, Tuple, Union # noqa + from typing import Any, AnyStr, Callable, Optional, Tuple, Union # noqa __all__ = ['Connection', 'timeout', # XXX Not really, but for documentation purposes @@ -36,7 +37,6 @@ class Connection(object): """An SSL connection.""" - clientPostConnectionCheck = Checker.Checker() serverPostConnectionCheck = _serverPostConnectionCheck m2_bio_free = m2.bio_free @@ -51,6 +51,11 @@ :param sock: socket to be used :param family: socket family """ + # The Checker needs to be an instance attribute + # and not a class attribute for thread safety reason + self.clientPostConnectionCheck = Checker.Checker() + + self._bio_freed = False self.ctx = ctx self.ssl = m2.ssl_new(self.ctx.ctx) # type: bytes if sock is not None: @@ -72,23 +77,38 @@ self.host = None + def _free_bio(self): + """ + Free the sslbio and sockbio, and close the socket. + """ + # Do not do it twice + if not self._bio_freed: + if getattr(self, 'sslbio', None): + self.m2_bio_free(self.sslbio) + if getattr(self, 'sockbio', None): + self.m2_bio_free(self.sockbio) + if self.ssl_close_flag == self.m2_bio_noclose and \ + getattr(self, 'ssl', None): + self.m2_ssl_free(self.ssl) + self.socket.close() + self._bio_freed = True + + def __del__(self): # type: () -> None # Notice that M2Crypto doesn't automatically shuts down the # connection here. You have to call self.close() in your # program, M2Crypto won't do it automatically for you. - if getattr(self, 'sslbio', None): - self.m2_bio_free(self.sslbio) - if getattr(self, 'sockbio', None): - self.m2_bio_free(self.sockbio) - if self.ssl_close_flag == self.m2_bio_noclose and \ - getattr(self, 'ssl', None): - self.m2_ssl_free(self.ssl) - self.socket.close() + self._free_bio() - def close(self): + def close(self, freeBio=False): + """ + if freeBio is true, call _free_bio + """ # type: () -> None m2.ssl_shutdown(self.ssl) + if freeBio: + self._free_bio() def clear(self): # type: () -> int @@ -582,9 +602,12 @@ return m2.ssl_set_cipher_list(self.ssl, cipher_list) def makefile(self, mode='rb', bufsize=-1): - # type: (AnyStr, int) -> socket._fileobject + # type: (AnyStr, int) -> Union[io.BufferedRWPair,io.BufferedReader] if six.PY3: - return socket.SocketIO(self, mode) + raw = socket.SocketIO(self, mode) + if 'rw' in mode: + return io.BufferedRWPair(raw, raw) + return io.BufferedReader(raw, io.DEFAULT_BUFFER_SIZE) else: return socket._fileobject(self, mode, bufsize) @@ -647,9 +670,9 @@ binstr = self.socket.getsockopt( socket.SOL_SOCKET, socket.SO_SNDTIMEO, timeout.struct_size()) timeo = timeout.struct_to_timeout(binstr) - #print("Debug: get_socket_write_timeout: " - # "get sockopt value: %s -> returned timeout(sec=%r, microsec=%r)" % - # (self._hexdump(binstr), timeo.sec, timeo.microsec)) + # print("Debug: get_socket_write_timeout: " + # "get sockopt value: %s -> ret timeout(sec=%r, microsec=%r)" % + # (self._hexdump(binstr), timeo.sec, timeo.microsec)) return timeo def set_socket_read_timeout(self, timeo): @@ -662,9 +685,9 @@ # type: (timeout) -> None assert isinstance(timeo, timeout.timeout) binstr = timeo.pack() - #print("Debug: set_socket_write_timeout: " - # "input timeout(sec=%r, microsec=%r) -> set sockopt value: %s" % - # (timeo.sec, timeo.microsec, self._hexdump(binstr))) + # print("Debug: set_socket_write_timeout: " + # "input timeout(sec=%r, microsec=%r) -> set sockopt value: %s" % + # (timeo.sec, timeo.microsec, self._hexdump(binstr))) self.socket.setsockopt( socket.SOL_SOCKET, socket.SO_SNDTIMEO, binstr) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/M2Crypto/SSL/__init__.py new/M2Crypto-0.36.0/M2Crypto/SSL/__init__.py --- old/M2Crypto-0.35.2/M2Crypto/SSL/__init__.py 2019-06-08 12:58:14.000000000 +0200 +++ new/M2Crypto-0.36.0/M2Crypto/SSL/__init__.py 2020-01-30 09:17:01.000000000 +0100 @@ -41,3 +41,5 @@ op_all = m2.SSL_OP_ALL # type: int op_no_sslv2 = m2.SSL_OP_NO_SSLv2 # type: int + +verify_allow_proxy_certs = m2.VERIFY_ALLOW_PROXY_CERTS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/M2Crypto/X509.py new/M2Crypto-0.36.0/M2Crypto/X509.py --- old/M2Crypto-0.35.2/M2Crypto/X509.py 2018-10-09 14:50:01.000000000 +0200 +++ new/M2Crypto-0.36.0/M2Crypto/X509.py 2020-07-13 22:54:39.000000000 +0200 @@ -41,7 +41,7 @@ Create new X509_Extension instance. """ if name == 'subjectKeyIdentifier' and \ - value.strip('0123456789abcdefABCDEF:') is not '': + value.strip('0123456789abcdefABCDEF:') != '': raise ValueError('value must be precomputed hash') ctx = m2.x509v3_set_nconf() x509_ext_ptr = m2.x509v3_ext_conf(None, ctx, name, value) @@ -1003,6 +1003,15 @@ add_cert = add_x509 + def set_flags(self, flags): + """ + Set the verification flags for the X509Store + Wrapper over OpenSSL X509_STORE_set_flags() + + :param flags: verification parameters + """ + return m2.x509_store_set_flags(self.store, flags) + class X509_Stack(object): """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/M2Crypto/__init__.py new/M2Crypto-0.36.0/M2Crypto/__init__.py --- old/M2Crypto-0.35.2/M2Crypto/__init__.py 2019-06-10 13:45:57.000000000 +0200 +++ new/M2Crypto-0.36.0/M2Crypto/__init__.py 2020-07-13 22:57:14.000000000 +0200 @@ -20,7 +20,7 @@ # noqa import sys from distutils.version import StrictVersion -__version__ = '0.35.2' +__version__ = '0.36.0' version = __version__ # type: str version_info = StrictVersion(__version__).version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/M2Crypto/m2xmlrpclib.py new/M2Crypto-0.36.0/M2Crypto/m2xmlrpclib.py --- old/M2Crypto-0.35.2/M2Crypto/m2xmlrpclib.py 2018-03-13 15:16:57.000000000 +0100 +++ new/M2Crypto-0.36.0/M2Crypto/m2xmlrpclib.py 2020-07-13 22:54:39.000000000 +0200 @@ -66,14 +66,14 @@ if request_body: h.send(request_body) - errcode, errmsg, headers = h.getreply() + response = h.getresponse() - if errcode != 200: + if response.status != 200: raise ProtocolError( host + handler, - errcode, errmsg, - headers + response.status, response.reason, + response.getheaders() ) self.verbose = verbose - return self.parse_response(h.getfile()) + return self.parse_response(response) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/M2Crypto/six.py new/M2Crypto-0.36.0/M2Crypto/six.py --- old/M2Crypto-0.35.2/M2Crypto/six.py 2018-10-09 14:50:01.000000000 +0200 +++ new/M2Crypto-0.36.0/M2Crypto/six.py 2020-07-13 22:54:39.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright (c) 2010-2018 Benjamin Peterson +# Copyright (c) 2010-2019 Benjamin Peterson # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ import types __author__ = "Benjamin Peterson <benja...@python.org>" -__version__ = "1.11.0" +__version__ = "1.13.0" # Useful for very coarse version differentiation. @@ -255,8 +255,10 @@ MovedAttribute("zip_longest", "itertools", "itertools", "izip_longest", "zip_longest"), MovedModule("builtins", "__builtin__"), MovedModule("configparser", "ConfigParser"), + MovedModule("collections_abc", "collections", "collections.abc" if sys.version_info >= (3, 3) else "collections"), MovedModule("copyreg", "copy_reg"), MovedModule("dbm_gnu", "gdbm", "dbm.gnu"), + MovedModule("dbm_ndbm", "dbm", "dbm.ndbm"), MovedModule("_dummy_thread", "dummy_thread", "_dummy_thread"), MovedModule("http_cookiejar", "cookielib", "http.cookiejar"), MovedModule("http_cookies", "Cookie", "http.cookies"), @@ -637,6 +639,7 @@ import io StringIO = io.StringIO BytesIO = io.BytesIO + del io _assertCountEqual = "assertCountEqual" if sys.version_info[1] <= 1: _assertRaisesRegex = "assertRaisesRegexp" @@ -824,7 +827,15 @@ class metaclass(type): def __new__(cls, name, this_bases, d): - return meta(name, bases, d) + if sys.version_info[:2] >= (3, 7): + # This version introduced PEP 560 that requires a bit + # of extra care (we mimic what is done by __build_class__). + resolved_bases = types.resolve_bases(bases) + if resolved_bases is not bases: + d['__orig_bases__'] = bases + else: + resolved_bases = bases + return meta(name, resolved_bases, d) @classmethod def __prepare__(cls, name, this_bases): @@ -844,6 +855,8 @@ orig_vars.pop(slots_var) orig_vars.pop('__dict__', None) orig_vars.pop('__weakref__', None) + if hasattr(cls, '__qualname__'): + orig_vars['__qualname__'] = cls.__qualname__ return metaclass(cls.__name__, cls.__bases__, orig_vars) return wrapper diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/M2Crypto.egg-info/PKG-INFO new/M2Crypto-0.36.0/M2Crypto.egg-info/PKG-INFO --- old/M2Crypto-0.35.2/M2Crypto.egg-info/PKG-INFO 2019-06-10 13:54:46.000000000 +0200 +++ new/M2Crypto-0.36.0/M2Crypto.egg-info/PKG-INFO 2020-07-13 23:04:13.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: M2Crypto -Version: 0.35.2 +Version: 0.36.0 Summary: M2Crypto: A Python crypto and SSL toolkit Home-page: https://gitlab.com/m2crypto/m2crypto Author: Ng Pheng Siong diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/PKG-INFO new/M2Crypto-0.36.0/PKG-INFO --- old/M2Crypto-0.35.2/PKG-INFO 2019-06-10 13:54:46.000000000 +0200 +++ new/M2Crypto-0.36.0/PKG-INFO 2020-07-13 23:04:13.764687000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: M2Crypto -Version: 0.35.2 +Version: 0.36.0 Summary: M2Crypto: A Python crypto and SSL toolkit Home-page: https://gitlab.com/m2crypto/m2crypto Author: Ng Pheng Siong diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/SWIG/_evp.i new/M2Crypto-0.36.0/SWIG/_evp.i --- old/M2Crypto-0.35.2/SWIG/_evp.i 2018-03-06 23:45:31.000000000 +0100 +++ new/M2Crypto-0.36.0/SWIG/_evp.i 2020-04-14 23:09:41.000000000 +0200 @@ -430,8 +430,17 @@ const void *kbuf, *ibuf; Py_ssize_t klen, ilen; - if ((PyObject_AsReadBuffer(key, &kbuf, &klen) == -1) - || (PyObject_AsReadBuffer(iv, &ibuf, &ilen) == -1)) + if (cipher == Py_None) + cipher = NULL; + + if (key == Py_None) + kbuf = NULL; + else if (PyObject_AsReadBuffer(key, &kbuf, &klen) == -1) + return NULL; + + if (iv == Py_None) + ibuf = NULL; + else if (PyObject_AsReadBuffer(iv, &ibuf, &ilen) == -1) return NULL; if (!EVP_CipherInit(ctx, cipher, (unsigned char *)kbuf, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/SWIG/_m2crypto_wrap.c new/M2Crypto-0.36.0/SWIG/_m2crypto_wrap.c --- old/M2Crypto-0.35.2/SWIG/_m2crypto_wrap.c 2019-06-10 13:54:18.000000000 +0200 +++ new/M2Crypto-0.36.0/SWIG/_m2crypto_wrap.c 2020-07-13 22:53:39.000000000 +0200 @@ -6085,8 +6085,17 @@ const void *kbuf, *ibuf; Py_ssize_t klen, ilen; - if ((PyObject_AsReadBuffer(key, &kbuf, &klen) == -1) - || (PyObject_AsReadBuffer(iv, &ibuf, &ilen) == -1)) + if (cipher == Py_None) + cipher = NULL; + + if (key == Py_None) + kbuf = NULL; + else if (PyObject_AsReadBuffer(key, &kbuf, &klen) == -1) + return NULL; + + if (iv == Py_None) + ibuf = NULL; + else if (PyObject_AsReadBuffer(iv, &ibuf, &ilen) == -1) return NULL; if (!EVP_CipherInit(ctx, cipher, (unsigned char *)kbuf, @@ -23962,6 +23971,40 @@ } +SWIGINTERN PyObject *_wrap_x509_store_set_flags(PyObject *self, PyObject *args) { + PyObject *resultobj = 0; + X509_STORE *arg1 = (X509_STORE *) 0 ; + unsigned long arg2 ; + void *argp1 = 0 ; + int res1 = 0 ; + unsigned long val2 ; + int ecode2 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + int result; + + if(!PyArg_UnpackTuple(args,(char *)"x509_store_set_flags",2,2,&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_X509_STORE, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "x509_store_set_flags" "', argument " "1"" of type '" "X509_STORE *""'"); + } + arg1 = (X509_STORE *)(argp1); + ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "x509_store_set_flags" "', argument " "2"" of type '" "unsigned long""'"); + } + arg2 = (unsigned long)(val2); + result = (int)X509_STORE_set_flags(arg1,arg2); + { + resultobj=PyLong_FromLong(result); + if (PyErr_Occurred()) SWIG_fail; + } + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_x509_read_pem(PyObject *self, PyObject *args) { PyObject *resultobj = 0; BIO *arg1 = (BIO *) 0 ; @@ -30013,6 +30056,7 @@ { (char *)"x509_store_ctx_get1_chain", _wrap_x509_store_ctx_get1_chain, METH_VARARGS, NULL}, { (char *)"x509_extension_get_critical", _wrap_x509_extension_get_critical, METH_VARARGS, NULL}, { (char *)"x509_extension_set_critical", _wrap_x509_extension_set_critical, METH_VARARGS, NULL}, + { (char *)"x509_store_set_flags", _wrap_x509_store_set_flags, METH_VARARGS, NULL}, { (char *)"x509_read_pem", _wrap_x509_read_pem, METH_VARARGS, NULL}, { (char *)"d2i_x509", _wrap_d2i_x509, METH_VARARGS, NULL}, { (char *)"x509_init", _wrap_x509_init, METH_VARARGS, NULL}, @@ -32338,6 +32382,7 @@ SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "X509_V_ERR_CERT_UNTRUSTED",SWIG_From_int((int)(27))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "X509_V_ERR_CERT_REJECTED",SWIG_From_int((int)(28))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "X509_V_ERR_APPLICATION_VERIFICATION",SWIG_From_int((int)(50))); + SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "VERIFY_ALLOW_PROXY_CERTS",SWIG_From_int((int)(X509_V_FLAG_ALLOW_PROXY_CERTS))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "XN_FLAG_COMPAT",SWIG_From_int((int)(0))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "XN_FLAG_SEP_COMMA_PLUS",SWIG_From_int((int)((1 << 16)))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "XN_FLAG_SEP_CPLUS_SPC",SWIG_From_int((int)((2 << 16)))); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/SWIG/_x509.i new/M2Crypto-0.36.0/SWIG/_x509.i --- old/M2Crypto-0.35.2/SWIG/_x509.i 2018-03-06 23:45:31.000000000 +0100 +++ new/M2Crypto-0.36.0/SWIG/_x509.i 2020-01-30 09:17:01.000000000 +0100 @@ -268,6 +268,11 @@ %rename(x509_extension_set_critical) X509_EXTENSION_set_critical; extern int X509_EXTENSION_set_critical(X509_EXTENSION *, int); + +%rename(x509_store_set_flags) X509_STORE_set_flags; +extern int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); + + %typemap(out) X509 * { PyObject *self = NULL; /* bug in SWIG_NewPointerObj as of 3.0.5 */ @@ -340,6 +345,10 @@ %constant int X509_V_ERR_CERT_REJECTED = 28; %constant int X509_V_ERR_APPLICATION_VERIFICATION = 50; +/* Enable proxy certificate validation */ +%constant int VERIFY_ALLOW_PROXY_CERTS = X509_V_FLAG_ALLOW_PROXY_CERTS; + + /* x509.h */ %constant int XN_FLAG_COMPAT = 0; %constant int XN_FLAG_SEP_COMMA_PLUS = (1 << 16); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/appveyor.yml new/M2Crypto-0.36.0/appveyor.yml --- old/M2Crypto-0.35.2/appveyor.yml 2019-05-31 15:59:54.000000000 +0200 +++ new/M2Crypto-0.36.0/appveyor.yml 2020-07-13 22:54:39.000000000 +0200 @@ -5,13 +5,46 @@ secure: oqWqarxnd4H23FMywnlQeg== PASS: secure: j/VSxdYJ7mdR44u8OdywLg== - X86_OPENSSL_INSTALLER: Win32OpenSSL-1_1_0k.exe - X64_OPENSSL_INSTALLER: Win64OpenSSL-1_1_0k.exe + X86_OPENSSL_INSTALLER: Win32OpenSSL-1_1_1g.exe + X64_OPENSSL_INSTALLER: Win64OpenSSL-1_1_1g.exe matrix: # Pre-installed Python versions, which Appveyor may upgrade to # a later point release. + + - PYTHON: "C:\\Python38" + PYTHON_VERSION: "3.8.x" + PYTHON_ARCH: "32" + OPENSSL_PATH: "C:\\OpenSSL-1-1-Win32" + PYWIN32: "pywin32-227.win32-py3.8.exe" + PYWIN32_RELEASE: b227 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + + - PYTHON: "C:\\Python38-x64" + PYTHON_VERSION: "3.8.x" + PYTHON_ARCH: "64" + OPENSSL_PATH: "C:\\OpenSSL-1-1-Win64" + PYWIN32: "pywin32-227.win-amd64-py3.8.exe" + PYWIN32_RELEASE: b227 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + + - PYTHON: "C:\\Python37" + PYTHON_VERSION: "3.7.x" + PYTHON_ARCH: "32" + OPENSSL_PATH: "C:\\OpenSSL-1-1-Win32" + PYWIN32: "pywin32-222.win32-py3.7.exe" + PYWIN32_RELEASE: b222 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + + - PYTHON: "C:\\Python37-x64" + PYTHON_VERSION: "3.7.x" + PYTHON_ARCH: "64" + OPENSSL_PATH: "C:\\OpenSSL-1-1-Win64" + PYWIN32: "pywin32-222.win-amd64-py3.7.exe" + PYWIN32_RELEASE: b222 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + - PYTHON: "C:\\Python36" PYTHON_VERSION: "3.6.x" # currently 3.6.4 PYTHON_ARCH: "32" @@ -97,11 +130,11 @@ # target Python version and architecture - "%PYTHON%\\Scripts\\pip.exe install -r dev-requirements.txt" - - ECHO "Install OpenSSL 1.1.0 32bit" + - ECHO "Install OpenSSL 32bit" - curl -o "c:\\%X86_OPENSSL_INSTALLER%" -fsSL "https://slproweb.com/download/%X86_OPENSSL_INSTALLER%" - "c:\\%X86_OPENSSL_INSTALLER% /silent /verysilent /DIR=C:\\OpenSSL-1-1-Win32" - - ECHO "Install OpenSSL 1.1.0 64bit" + - ECHO "Install OpenSSL 64bit" - curl -o "c:\\%X64_OPENSSL_INSTALLER%" -fsSL "https://slproweb.com/download/%X64_OPENSSL_INSTALLER%" - "c:\\%X64_OPENSSL_INSTALLER% /silent /verysilent /DIR=C:\\OpenSSL-1-1-Win64" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/contrib/isaac.httpslib.py new/M2Crypto-0.36.0/contrib/isaac.httpslib.py --- old/M2Crypto-0.35.2/contrib/isaac.httpslib.py 2017-10-06 21:46:00.000000000 +0200 +++ new/M2Crypto-0.36.0/contrib/isaac.httpslib.py 2020-01-30 09:17:01.000000000 +0100 @@ -140,7 +140,7 @@ # Authenticated proxy import base64 userpass = "%s:%s" % (self.__username, self.__password) - enc_userpass = string.strip(base64.encodestring(userpass)) + enc_userpass = base64.encodestring(userpass).strip() self.putheader("Proxy-Authorization", "Basic %s" % enc_userpass) class HTTPSProxyResponse(HTTPResponse): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/setup.py new/M2Crypto-0.36.0/setup.py --- old/M2Crypto-0.35.2/setup.py 2019-05-06 14:08:39.000000000 +0200 +++ new/M2Crypto-0.36.0/setup.py 2020-07-02 17:36:45.000000000 +0200 @@ -19,7 +19,6 @@ import re import shlex import shutil -import string import subprocess import sys @@ -37,11 +36,15 @@ REQUIRED_SWIG_VERSION = '2.0.4' + +requires_list = [] if (2, 6) < sys.version_info[:2] < (3, 5): requires_list = ['typing'] -else: - requires_list = [] -package_data = {} +if sys.version_info[0] > 2: + from typing import Dict, List + + +package_data = {} # type: Dict[str, List[str]] if sys.platform == 'win32': package_data.update(M2Crypto=["*.dll"]) @@ -81,9 +84,11 @@ with open(file) as origin_file: for line in origin_file: - m = re.match(r'^# *define *OPENSSL_VERSION_NUMBER *(0x[0-9a-fA-F]*)', line) + m = re.match( + r'^# *define *OPENSSL_VERSION_NUMBER *(0x[0-9a-fA-F]*)', + line) if m: - log.debug('found version number: %s\n' % m.group(1)) + log.debug('found version number: %s\n', m.group(1)) ver = int(m.group(1), base=16) break @@ -337,11 +342,14 @@ if os.path.exists(f): os.unlink(f) + def __get_version(): # noqa with open('M2Crypto/__init__.py') as init_file: for line in init_file: if line.startswith('__version__ ='): - return line.split('=')[1].strip(string.whitespace + "'") + # Originally string.whitespace, but it is deprecated + string_whitespace = ' \t\n\r\x0b\x0c' + return line.split('=')[1].strip(string_whitespace + "'") long_description_text = '''\ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/tests/ca.pem new/M2Crypto-0.36.0/tests/ca.pem --- old/M2Crypto-0.35.2/tests/ca.pem 2018-10-30 15:36:24.000000000 +0100 +++ new/M2Crypto-0.36.0/tests/ca.pem 2020-01-30 09:17:01.000000000 +0100 @@ -5,8 +5,8 @@ Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=California, O=M2Crypto, CN=Heikki Toivonen Validity - Not Before: Oct 7 15:12:02 2018 GMT - Not After : Oct 4 15:12:02 2028 GMT + Not Before: Oct 9 07:40:19 2019 GMT + Not After : Dec 31 07:40:22 2049 GMT Subject: C=US, ST=California, O=M2Crypto, CN=Heikki Toivonen Subject Public Key Info: Public Key Algorithm: rsaEncryption @@ -37,25 +37,25 @@ X509v3 Subject Key Identifier: 49:6E:7E:9B:16:48:9F:E9:B8:A7:DC:7C:0E:73:F6:26:2A:9C:9D:7C Signature Algorithm: sha256WithRSAEncryption - a5:88:b0:1a:e3:fc:89:21:8f:d2:3f:39:5d:bd:84:1c:c9:1b: - 58:16:8d:cc:f7:9d:6d:f1:19:29:05:51:c6:20:c5:cc:00:d5: - 61:5f:8f:de:64:3a:43:81:eb:b2:21:7a:ec:19:6b:21:30:33: - bc:a3:7b:f7:2a:49:f5:8b:d3:48:dc:65:f0:29:f2:fd:3c:f5: - 03:37:19:a3:56:d5:3c:42:60:29:df:ab:aa:36:95:16:eb:6c: - f2:2d:22:ca:5c:0d:e7:14:6e:f3:10:70:b9:d2:82:59:68:9e: - 31:9d:39:f2:8a:6e:00:c3:2c:b5:ed:f9:fa:6f:f4:43:f1:98: - 81:f3:89:ef:23:6d:fc:f1:33:2f:d7:fc:cc:28:2a:dd:3e:da: - 27:8a:1f:5e:a9:7a:df:2e:c1:e5:c6:db:a9:74:c2:e2:9c:3e: - 9b:2c:22:b1:2e:5d:90:09:c9:45:95:35:21:ca:08:12:19:4c: - 8d:ca:a5:1d:2b:55:b3:44:d5:43:5d:86:bc:36:4c:e6:7a:29: - b6:21:ab:e8:a2:23:ec:e4:00:a0:6b:0f:bd:d5:77:64:64:30: - ed:d7:31:88:18:91:24:08:7b:9b:0f:62:8f:31:5c:11:f1:df: - d3:2d:e6:52:27:11:a0:8a:f9:5e:a9:a3:ea:e3:0c:83:56:2b: - 95:6b:b9:f6 + 79:9b:15:c5:45:3e:f1:8a:15:bb:26:38:13:c1:10:bd:88:04: + 77:40:0e:05:75:0a:21:4f:7e:cb:6a:0d:a3:10:a9:de:a5:c3: + f1:dc:15:d6:a7:c6:61:28:94:9f:0e:5b:fc:22:53:9a:92:f2: + a2:cd:4d:fa:29:c6:c6:1f:e9:85:c2:37:60:1f:7f:eb:68:09: + 88:0b:d3:30:38:25:76:c0:58:33:33:45:8c:82:9a:55:44:53: + 92:14:07:48:0a:df:5c:0c:d2:79:dc:7b:51:1f:44:42:c1:4d: + 96:0f:a3:18:83:bf:db:31:a8:b2:3a:53:69:96:59:d5:37:6d: + 99:5a:12:d7:cb:66:b9:a7:f4:eb:c3:5f:e6:af:e2:e5:48:f0: + ce:89:a0:7c:fd:9e:68:4e:e7:8e:b8:47:1e:69:69:c6:fb:4e: + 8e:ea:c7:58:a6:96:b5:40:d3:52:a5:74:cd:93:8f:44:a7:8f: + 6e:79:a7:a2:ef:1e:60:3d:bb:5b:ff:14:e6:93:92:91:79:6f: + 24:56:8a:75:71:21:d1:d4:aa:f4:21:89:6c:81:1e:88:73:2f: + e2:d9:b9:df:64:62:fa:03:74:da:6a:55:ab:c7:ef:83:ed:95: + 4e:76:57:60:56:ce:94:73:f5:3e:5a:20:5c:6f:0c:7f:77:b2: + ae:ad:81:22 -----BEGIN CERTIFICATE----- MIIDSDCCAjCgAwIBAgIBADANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQGEwJVUzET MBEGA1UECAwKQ2FsaWZvcm5pYTERMA8GA1UECgwITTJDcnlwdG8xGDAWBgNVBAMM -D0hlaWtraSBUb2l2b25lbjAeFw0xODEwMDcxNTEyMDJaFw0yODEwMDQxNTEyMDJa +D0hlaWtraSBUb2l2b25lbjAeFw0xOTEwMDkwNzQwMTlaFw00OTEyMzEwNzQwMjJa ME8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQKDAhN MkNyeXB0bzEYMBYGA1UEAwwPSGVpa2tpIFRvaXZvbmVuMIIBIjANBgkqhkiG9w0B AQEFAAOCAQ8AMIIBCgKCAQEAuBTDfhDUDlVejFwUBxTapjLUNTcjfCe9KWlK3e6n @@ -65,12 +65,12 @@ fkZ8hcYelqIyuBb/lnGBp9GH0tkOuJ+tRRSh07lSyFljdxf+Iqz5wZcSl5iZrqxI G5eD+ojgY5u8Vergx+xVKOkoKrS+COFQQ05B3xC3mB7dNwIDAQABoy8wLTAMBgNV HRMEBTADAQH/MB0GA1UdDgQWBBRJbn6bFkif6bin3HwOc/YmKpydfDANBgkqhkiG -9w0BAQsFAAOCAQEApYiwGuP8iSGP0j85Xb2EHMkbWBaNzPedbfEZKQVRxiDFzADV -YV+P3mQ6Q4HrsiF67BlrITAzvKN79ypJ9YvTSNxl8Cny/Tz1AzcZo1bVPEJgKd+r -qjaVFuts8i0iylwN5xRu8xBwudKCWWieMZ058opuAMMste35+m/0Q/GYgfOJ7yNt -/PEzL9f8zCgq3T7aJ4ofXql63y7B5cbbqXTC4pw+mywisS5dkAnJRZU1IcoIEhlM -jcqlHStVs0TVQ12GvDZM5noptiGr6KIj7OQAoGsPvdV3ZGQw7dcxiBiRJAh7mw9i -jzFcEfHf0y3mUicRoIr5Xqmj6uMMg1YrlWu59g== +9w0BAQsFAAOCAQEAeZsVxUU+8YoVuyY4E8EQvYgEd0AOBXUKIU9+y2oNoxCp3qXD +8dwV1qfGYSiUnw5b/CJTmpLyos1N+inGxh/phcI3YB9/62gJiAvTMDgldsBYMzNF +jIKaVURTkhQHSArfXAzSedx7UR9EQsFNlg+jGIO/2zGosjpTaZZZ1TdtmVoS18tm +uaf068Nf5q/i5UjwzomgfP2eaE7njrhHHmlpxvtOjurHWKaWtUDTUqV0zZOPRKeP +bnmnou8eYD27W/8U5pOSkXlvJFaKdXEh0dSq9CGJbIEeiHMv4tm532Ri+gN02mpV +q8fvg+2VTnZXYFbOlHP1PlogXG8Mf3eyrq2BIg== -----END CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAuBTDfhDUDlVejFwUBxTapjLUNTcjfCe9KWlK3e6nn/N/G/Rz Binary files old/M2Crypto-0.35.2/tests/randpool.dat and new/M2Crypto-0.36.0/tests/randpool.dat differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/tests/server.pem new/M2Crypto-0.36.0/tests/server.pem --- old/M2Crypto-0.35.2/tests/server.pem 2018-10-30 15:36:24.000000000 +0100 +++ new/M2Crypto-0.36.0/tests/server.pem 2020-01-30 09:17:01.000000000 +0100 @@ -5,8 +5,8 @@ Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=California, O=M2Crypto, CN=Heikki Toivonen Validity - Not Before: Oct 7 15:12:02 2018 GMT - Not After : Oct 4 15:12:02 2028 GMT + Not Before: Oct 9 08:05:20 2019 GMT + Not After : Dec 31 08:05:23 2049 GMT Subject: C=US, ST=California, O=M2Crypto, CN=localhost Subject Public Key Info: Public Key Algorithm: rsaEncryption @@ -37,25 +37,25 @@ X509v3 Subject Key Identifier: 56:FF:B6:FD:ED:A3:76:04:AA:CB:1F:25:FB:A5:8D:9D:9A:D5:85:D3 Signature Algorithm: sha256WithRSAEncryption - 53:99:54:2e:26:26:0c:81:b2:c6:5c:61:6f:1c:60:28:ed:f3: - 1b:74:8e:e8:c1:3c:b5:35:e3:db:51:07:38:43:b0:57:0b:e5: - 7e:fa:0a:9e:bd:bd:82:5a:ed:9b:67:0d:2b:61:4d:44:58:64: - a2:fe:bc:fb:90:80:d2:6b:e4:25:09:ea:ca:a1:17:e6:33:31: - 09:62:b6:db:4c:21:f3:52:02:7d:ca:9a:f9:42:04:50:b4:d8: - a6:49:ea:bd:c0:13:05:c6:c4:d2:59:d6:30:87:80:c6:a3:92: - 45:49:02:43:9c:4a:aa:c1:84:d0:ea:01:29:40:73:87:cd:8e: - aa:93:d3:33:7e:01:cf:b5:c1:4b:35:e7:20:1f:6d:7a:c5:d4: - a9:4a:c1:e2:26:f5:b7:a2:f5:04:31:45:74:30:9a:51:e7:19: - 62:e4:d1:ab:f9:36:29:58:ec:90:f9:8c:3b:28:39:28:d7:8a: - a0:c3:ae:aa:a9:c2:05:6e:a9:f4:b6:62:1b:01:db:f9:3e:b9: - a4:d7:05:ac:76:b8:8a:12:57:b3:66:de:b0:d2:78:0d:07:9c: - 15:1b:85:84:76:31:23:64:ce:1e:7f:be:1e:cc:d9:9f:c0:0c: - 9c:20:b9:f0:2e:09:04:ca:d0:61:fc:ce:ba:df:28:c8:20:c8: - fb:63:1d:52 + 1d:6f:b2:e1:22:08:4b:9a:41:aa:6e:11:1a:c8:fb:7b:f3:5e: + 99:26:ee:cf:ec:58:5d:7e:72:18:72:87:55:d0:73:73:e3:d9: + 74:73:cf:88:70:9f:27:99:52:a2:40:2e:53:70:44:a4:61:24: + b1:78:22:63:aa:52:2d:69:a6:91:4d:53:66:5d:e7:7e:bf:8f: + 64:97:3c:07:49:5b:ae:cb:49:89:3f:22:a6:b0:04:e8:7f:9a: + 86:1a:b8:41:b2:64:c0:18:34:0e:01:98:b5:b3:49:f0:cd:18: + b6:c6:62:ea:42:d7:1f:75:dc:f8:46:3f:53:04:cf:e1:05:86: + 2d:c0:00:08:88:0b:fb:c4:b8:31:9d:8f:f9:8b:3c:75:ec:1c: + 37:6c:ea:fe:5f:5f:46:da:d7:38:96:ef:3a:d8:b8:44:33:d2: + e2:bd:d5:64:19:43:37:2a:5b:6c:67:bb:63:77:4c:90:55:3b: + a5:b8:47:67:50:56:35:0f:1b:b3:23:fe:32:7b:a9:54:d7:7a: + e9:da:be:52:80:43:53:0b:21:7b:a9:b5:6a:4f:00:82:9e:38: + d4:b4:14:81:a2:58:a2:ca:13:2f:7a:15:fe:01:8e:7a:f1:d5: + c0:4b:93:0f:19:76:bc:40:e5:52:d0:42:3d:17:08:85:e7:0e: + 34:b2:2e:d1 -----BEGIN CERTIFICATE----- MIIDPzCCAiegAwIBAgIBATANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQGEwJVUzET MBEGA1UECAwKQ2FsaWZvcm5pYTERMA8GA1UECgwITTJDcnlwdG8xGDAWBgNVBAMM -D0hlaWtraSBUb2l2b25lbjAeFw0xODEwMDcxNTEyMDJaFw0yODEwMDQxNTEyMDJa +D0hlaWtraSBUb2l2b25lbjAeFw0xOTEwMDkwODA1MjBaFw00OTEyMzEwODA1MjNa MEkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQKDAhN MkNyeXB0bzESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOC AQ8AMIIBCgKCAQEA9PM4MQmSDV2LBvBD4GJi4XHrMLrXuVfbjBCbnh52RasUklTU @@ -65,12 +65,12 @@ sabd/Om4ktUcc9eCbmBsELMiyqXYxdJBk7NXPxvPz3hMFYWxyraEExuPQu0hu5Ci tzmdaL9N2jEGU5jj3o/4Pn0l8nV+0wnk601ZyQIDAQABoywwKjAJBgNVHRMEAjAA MB0GA1UdDgQWBBRW/7b97aN2BKrLHyX7pY2dmtWF0zANBgkqhkiG9w0BAQsFAAOC -AQEAU5lULiYmDIGyxlxhbxxgKO3zG3SO6ME8tTXj21EHOEOwVwvlfvoKnr29glrt -m2cNK2FNRFhkov68+5CA0mvkJQnqyqEX5jMxCWK220wh81ICfcqa+UIEULTYpknq -vcATBcbE0lnWMIeAxqOSRUkCQ5xKqsGE0OoBKUBzh82OqpPTM34Bz7XBSzXnIB9t -esXUqUrB4ib1t6L1BDFFdDCaUecZYuTRq/k2KVjskPmMOyg5KNeKoMOuqqnCBW6p -9LZiGwHb+T65pNcFrHa4ihJXs2besNJ4DQecFRuFhHYxI2TOHn++HszZn8AMnCC5 -8C4JBMrQYfzOut8oyCDI+2MdUg== +AQEAHW+y4SIIS5pBqm4RGsj7e/NemSbuz+xYXX5yGHKHVdBzc+PZdHPPiHCfJ5lS +okAuU3BEpGEksXgiY6pSLWmmkU1TZl3nfr+PZJc8B0lbrstJiT8iprAE6H+ahhq4 +QbJkwBg0DgGYtbNJ8M0YtsZi6kLXH3Xc+EY/UwTP4QWGLcAACIgL+8S4MZ2P+Ys8 +dewcN2zq/l9fRtrXOJbvOti4RDPS4r3VZBlDNypbbGe7Y3dMkFU7pbhHZ1BWNQ8b +syP+MnupVNd66dq+UoBDUwshe6m1ak8Agp441LQUgaJYosoTL3oV/gGOevHVwEuT +Dxl2vEDlUtBCPRcIhecONLIu0Q== -----END CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEA9PM4MQmSDV2LBvBD4GJi4XHrMLrXuVfbjBCbnh52RasUklTU diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/tests/sig.p7 new/M2Crypto-0.36.0/tests/sig.p7 --- old/M2Crypto-0.35.2/tests/sig.p7 2019-06-10 13:46:52.000000000 +0200 +++ new/M2Crypto-0.36.0/tests/sig.p7 2020-07-13 22:46:00.000000000 +0200 @@ -2,8 +2,8 @@ MIIF/gYJKoZIhvcNAQcCoIIF7zCCBesCAQExCzAJBgUrDgMCGgUAMBgGCSqGSIb3 DQEHAaALBAlzb21lIHRleHSgggNjMIIDXzCCAkegAwIBAgIBAzANBgkqhkiG9w0B AQsFADBPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTERMA8GA1UE -CgwITTJDcnlwdG8xGDAWBgNVBAMMD0hlaWtraSBUb2l2b25lbjAeFw0xODEwMDcx -NTEyMDJaFw0yODEwMDQxNTEyMDJaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApD +CgwITTJDcnlwdG8xGDAWBgNVBAMMD0hlaWtraSBUb2l2b25lbjAeFw0xOTEwMDkw +NzU4MzVaFw00OTEyMzEwNzU4MzdaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApD YWxpZm9ybmlhMREwDwYDVQQKDAhNMkNyeXB0bzEPMA0GA1UEAwwGU2lnbmVyMSEw HwYJKoZIhvcNAQkBFhJzaWduZXJAZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEB AQUAA4IBDwAwggEKAoIBAQDIhYY9cqqR2HsRAgWStxu/nzW+iFbblvJwPpg8w2JC @@ -13,23 +13,23 @@ tbLCDi9odKelbmFMAfLQfYNmeGafuYczzFncA4Jvu5gM6RBjEu7pBcFbmH6UZZjf Mb9ZkPAcbKwsG92QcasRlYuc9yovwA8tschaZdapNESBAgMBAAGjLDAqMAkGA1Ud EwQCMAAwHQYDVR0OBBYEFGgDMyfZh5rqfUHYLev57qvJasX6MA0GCSqGSIb3DQEB -CwUAA4IBAQBHJ2JtQ/P2hwqPH/FLK2cFEYWxE2nK3h5vj3iutbd1yoTzWCadxQsO -TOnOHF1pA27XLogodXjFVDfmcE+PkvtfzsKzo3R35sOUq8bSabvd2BadNirRweEN -gdqWn/GupLlzFrGYtflqTIsIMMPWMTp54u9/209vE/iY1rIEcsMDsv9jrc5OjZU3 -ptxSXlwmNZ8Ufp2gBEYA/1KU8St1HFLweetBqDmiWmPM3nDNgnJ3HXfhPf84hi0S -T6tMcjVpT61VHdqunQojSswqQNhO9b0zTOu3R0GCKsn8ZA0zdgBhurZAyiSWXoTV -T9JNLnoxpVBTuusxe3if9EPx5VRPWdy6MYICVjCCAlICAQEwVDBPMQswCQYDVQQG +CwUAA4IBAQANXp4Efdu2Ss9LLeXkLf7q+ybwHSQ2HJPZnP3YeLBIqIfQkYpGOrQe +SCzxwh98A6I/O5GtVRwsQgkZX9y+Lb3ldB4rNEuMr02Jttpq6+Nv7EBHG1M841rD +A1IMZJbSJC+K2ePpmwoQXPoQd8C26zod0HZnVVdxTvmRRRQwdLRtiEhsM9GepKNe +j1ZXQojOMFxkjdSq6E1Hib2XT0OxUbRAQRbe0l2MbYOWGJjRAQPHBkQcMmDr+Bru +iihdriwGnz2xuS8M/g+N0qvYUFmfDb5wZgEsc/eh+yvwbwmNiZB7L51Jmb7uK+JB +n/pk0g7hGoHuT0hPPgDpB7xMB94YgE+DMYICVjCCAlICAQEwVDBPMQswCQYDVQQG EwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTERMA8GA1UECgwITTJDcnlwdG8xGDAW BgNVBAMMD0hlaWtraSBUb2l2b25lbgIBAzAJBgUrDgMCGgUAoIHYMBgGCSqGSIb3 -DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE5MDYxMDExNDY1Mlow +DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIwMDcxMzIwNDYwMFow IwYJKoZIhvcNAQkEMRYEFDeqY8dzmNlURzJi4aAFfB5jLtp3MHkGCSqGSIb3DQEJ DzFsMGowCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBFjALBglghkgBZQMEAQIwCgYI KoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIH -MA0GCCqGSIb3DQMCAgEoMA0GCSqGSIb3DQEBAQUABIIBAJvU+X//WaeZK5hsCKz0 -vVnwNqxi/nx/LEqmD4BmaU/ZELi0upkB1oOZMn/slehwOtBmGObEIVauGZU1eMH9 -NPmTvjTWZkgdVigiCpt82RN/iWiITJi/vvPCuECj4qrX6apZPYSnfr4NGygIoIAt -PrRK5Xie7WxKtm/F7fxBJ/eULFPKT/6fxbqLGPhawbASt1ClNDJuqTZ57WrBzY2D -cOfwnCuLsACcNw/owyJetX2n9ZLemC0YQ3GcWY6dA6u71mQvC7lhmDOTV6wl+rOk -Lrz8CK3NQF/S3EwBHV6tsFzQLyaK7SlKN8XtEQernvLGlDp13K9lDbRUo8H8qD1L -i+A= +MA0GCCqGSIb3DQMCAgEoMA0GCSqGSIb3DQEBAQUABIIBAEe+kZSt+RuAl8bapbWD +tN6OgjT4O5hz6/sMzIxxTe2xnNFfhkT7/gekItSeUki1P9S+5GMbtnqmhOxa4vXe +jxde5QiUmhCpklqR+U8re4kIxYr1KXRrNqRL6lYOf0X6UKvp+oFLrgLopYuceseP +R65XvWJfaxpTP13KcuqBk5vW0mKO2I54fB7slcbK3CTjbri19Nh7K9GXbovo5el1 +LkcCpuyAaK0VdODaPnXpYQMsHcQvxYGbTYZvPgnaZxXZKDqxGR6BVyKMh/XeuVht +dseCzHlJmTVJJxZaSzRlp0MJaEFx1Oc1sWRNkeQ86t+w85L7P4XwPmAc/rfhAKXG +ILA= -----END PKCS7----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/tests/sig.p7s new/M2Crypto-0.36.0/tests/sig.p7s --- old/M2Crypto-0.35.2/tests/sig.p7s 2019-06-10 13:46:52.000000000 +0200 +++ new/M2Crypto-0.36.0/tests/sig.p7s 2020-07-13 22:46:00.000000000 +0200 @@ -1,11 +1,11 @@ MIME-Version: 1.0 -Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="sha1"; boundary="----E16AA9834472B32FC7F97F958C77A07C" +Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="sha1"; boundary="----E517B3F165ECB1AB6ED10F043260F790" This is an S/MIME signed message -------E16AA9834472B32FC7F97F958C77A07C +------E517B3F165ECB1AB6ED10F043260F790 some text -------E16AA9834472B32FC7F97F958C77A07C +------E517B3F165ECB1AB6ED10F043260F790 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" @@ -13,8 +13,8 @@ MIIF8QYJKoZIhvcNAQcCoIIF4jCCBd4CAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3 DQEHAaCCA2MwggNfMIICR6ADAgECAgEDMA0GCSqGSIb3DQEBCwUAME8xCzAJBgNV BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQKDAhNMkNyeXB0bzEY -MBYGA1UEAwwPSGVpa2tpIFRvaXZvbmVuMB4XDTE4MTAwNzE1MTIwMloXDTI4MTAw -NDE1MTIwMlowaTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExETAP +MBYGA1UEAwwPSGVpa2tpIFRvaXZvbmVuMB4XDTE5MTAwOTA3NTgzNVoXDTQ5MTIz +MTA3NTgzN1owaTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExETAP BgNVBAoMCE0yQ3J5cHRvMQ8wDQYDVQQDDAZTaWduZXIxITAfBgkqhkiG9w0BCQEW EnNpZ25lckBleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC ggEBAMiFhj1yqpHYexECBZK3G7+fNb6IVtuW8nA+mDzDYkL/VHR6Y+epTK5SSKJP @@ -23,25 +23,25 @@ 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 -------E16AA9834472B32FC7F97F958C77A07C-- +------E517B3F165ECB1AB6ED10F043260F790-- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/tests/signer.pem new/M2Crypto-0.36.0/tests/signer.pem --- old/M2Crypto-0.35.2/tests/signer.pem 2018-10-30 15:36:24.000000000 +0100 +++ new/M2Crypto-0.36.0/tests/signer.pem 2020-01-30 09:17:01.000000000 +0100 @@ -5,8 +5,8 @@ Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=California, O=M2Crypto, CN=Heikki Toivonen Validity - Not Before: Oct 7 15:12:02 2018 GMT - Not After : Oct 4 15:12:02 2028 GMT + Not Before: Oct 9 07:58:35 2019 GMT + Not After : Dec 31 07:58:37 2049 GMT Subject: C=US, ST=California, O=M2Crypto, CN=Signer/emailAddress=sig...@example.com Subject Public Key Info: Public Key Algorithm: rsaEncryption @@ -37,25 +37,25 @@ X509v3 Subject Key Identifier: 68:03:33:27:D9:87:9A:EA:7D:41:D8:2D:EB:F9:EE:AB:C9:6A:C5:FA Signature Algorithm: sha256WithRSAEncryption - 47:27:62:6d:43:f3:f6:87:0a:8f:1f:f1:4b:2b:67:05:11:85: - b1:13:69:ca:de:1e:6f:8f:78:ae:b5:b7:75:ca:84:f3:58:26: - 9d:c5:0b:0e:4c:e9:ce:1c:5d:69:03:6e:d7:2e:88:28:75:78: - c5:54:37:e6:70:4f:8f:92:fb:5f:ce:c2:b3:a3:74:77:e6:c3: - 94:ab:c6:d2:69:bb:dd:d8:16:9d:36:2a:d1:c1:e1:0d:81:da: - 96:9f:f1:ae:a4:b9:73:16:b1:98:b5:f9:6a:4c:8b:08:30:c3: - d6:31:3a:79:e2:ef:7f:db:4f:6f:13:f8:98:d6:b2:04:72:c3: - 03:b2:ff:63:ad:ce:4e:8d:95:37:a6:dc:52:5e:5c:26:35:9f: - 14:7e:9d:a0:04:46:00:ff:52:94:f1:2b:75:1c:52:f0:79:eb: - 41:a8:39:a2:5a:63:cc:de:70:cd:82:72:77:1d:77:e1:3d:ff: - 38:86:2d:12:4f:ab:4c:72:35:69:4f:ad:55:1d:da:ae:9d:0a: - 23:4a:cc:2a:40:d8:4e:f5:bd:33:4c:eb:b7:47:41:82:2a:c9: - fc:64:0d:33:76:00:61:ba:b6:40:ca:24:96:5e:84:d5:4f:d2: - 4d:2e:7a:31:a5:50:53:ba:eb:31:7b:78:9f:f4:43:f1:e5:54: - 4f:59:dc:ba + 0d:5e:9e:04:7d:db:b6:4a:cf:4b:2d:e5:e4:2d:fe:ea:fb:26: + f0:1d:24:36:1c:93:d9:9c:fd:d8:78:b0:48:a8:87:d0:91:8a: + 46:3a:b4:1e:48:2c:f1:c2:1f:7c:03:a2:3f:3b:91:ad:55:1c: + 2c:42:09:19:5f:dc:be:2d:bd:e5:74:1e:2b:34:4b:8c:af:4d: + 89:b6:da:6a:eb:e3:6f:ec:40:47:1b:53:3c:e3:5a:c3:03:52: + 0c:64:96:d2:24:2f:8a:d9:e3:e9:9b:0a:10:5c:fa:10:77:c0: + b6:eb:3a:1d:d0:76:67:55:57:71:4e:f9:91:45:14:30:74:b4: + 6d:88:48:6c:33:d1:9e:a4:a3:5e:8f:56:57:42:88:ce:30:5c: + 64:8d:d4:aa:e8:4d:47:89:bd:97:4f:43:b1:51:b4:40:41:16: + de:d2:5d:8c:6d:83:96:18:98:d1:01:03:c7:06:44:1c:32:60: + eb:f8:1a:ee:8a:28:5d:ae:2c:06:9f:3d:b1:b9:2f:0c:fe:0f: + 8d:d2:ab:d8:50:59:9f:0d:be:70:66:01:2c:73:f7:a1:fb:2b: + f0:6f:09:8d:89:90:7b:2f:9d:49:99:be:ee:2b:e2:41:9f:fa: + 64:d2:0e:e1:1a:81:ee:4f:48:4f:3e:00:e9:07:bc:4c:07:de: + 18:80:4f:83 -----BEGIN CERTIFICATE----- MIIDXzCCAkegAwIBAgIBAzANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQGEwJVUzET MBEGA1UECAwKQ2FsaWZvcm5pYTERMA8GA1UECgwITTJDcnlwdG8xGDAWBgNVBAMM -D0hlaWtraSBUb2l2b25lbjAeFw0xODEwMDcxNTEyMDJaFw0yODEwMDQxNTEyMDJa +D0hlaWtraSBUb2l2b25lbjAeFw0xOTEwMDkwNzU4MzVaFw00OTEyMzEwNzU4Mzda MGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQKDAhN MkNyeXB0bzEPMA0GA1UEAwwGU2lnbmVyMSEwHwYJKoZIhvcNAQkBFhJzaWduZXJA ZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIhYY9 @@ -65,11 +65,11 @@ UIpWxdMEXDyi07Bk2M4eda3OzZGxWMwtptzatbLCDi9odKelbmFMAfLQfYNmeGaf uYczzFncA4Jvu5gM6RBjEu7pBcFbmH6UZZjfMb9ZkPAcbKwsG92QcasRlYuc9yov wA8tschaZdapNESBAgMBAAGjLDAqMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGgDMyfZ -h5rqfUHYLev57qvJasX6MA0GCSqGSIb3DQEBCwUAA4IBAQBHJ2JtQ/P2hwqPH/FL -K2cFEYWxE2nK3h5vj3iutbd1yoTzWCadxQsOTOnOHF1pA27XLogodXjFVDfmcE+P -kvtfzsKzo3R35sOUq8bSabvd2BadNirRweENgdqWn/GupLlzFrGYtflqTIsIMMPW -MTp54u9/209vE/iY1rIEcsMDsv9jrc5OjZU3ptxSXlwmNZ8Ufp2gBEYA/1KU8St1 -HFLweetBqDmiWmPM3nDNgnJ3HXfhPf84hi0ST6tMcjVpT61VHdqunQojSswqQNhO -9b0zTOu3R0GCKsn8ZA0zdgBhurZAyiSWXoTVT9JNLnoxpVBTuusxe3if9EPx5VRP -Wdy6 +h5rqfUHYLev57qvJasX6MA0GCSqGSIb3DQEBCwUAA4IBAQANXp4Efdu2Ss9LLeXk +Lf7q+ybwHSQ2HJPZnP3YeLBIqIfQkYpGOrQeSCzxwh98A6I/O5GtVRwsQgkZX9y+ +Lb3ldB4rNEuMr02Jttpq6+Nv7EBHG1M841rDA1IMZJbSJC+K2ePpmwoQXPoQd8C2 +6zod0HZnVVdxTvmRRRQwdLRtiEhsM9GepKNej1ZXQojOMFxkjdSq6E1Hib2XT0Ox +UbRAQRbe0l2MbYOWGJjRAQPHBkQcMmDr+BruiihdriwGnz2xuS8M/g+N0qvYUFmf +Db5wZgEsc/eh+yvwbwmNiZB7L51Jmb7uK+JBn/pk0g7hGoHuT0hPPgDpB7xMB94Y +gE+D -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/tests/test_evp.py new/M2Crypto-0.36.0/tests/test_evp.py --- old/M2Crypto-0.35.2/tests/test_evp.py 2018-11-22 12:39:23.000000000 +0100 +++ new/M2Crypto-0.36.0/tests/test_evp.py 2020-04-14 23:09:41.000000000 +0200 @@ -517,6 +517,11 @@ unhexlify('5cd148eeaf680d4ff933aed83009cad4110162f53ef89fd44fad09611b0524d4'), unhexlify('')) + def test_cipher_init_reinit(self): + ctx = m2.cipher_ctx_new() + m2.cipher_init(ctx, m2.aes_128_cbc(), b'\x01' * (128//8), b'\x02' * (128//8), 1) + m2.cipher_init(ctx, m2.aes_128_cbc(), None, None, 1) + class PBKDF2TestCase(unittest.TestCase): def test_rfc3211_test_vectors(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/tests/test_ssl_offline.py new/M2Crypto-0.36.0/tests/test_ssl_offline.py --- old/M2Crypto-0.35.2/tests/test_ssl_offline.py 2018-10-30 15:36:24.000000000 +0100 +++ new/M2Crypto-0.36.0/tests/test_ssl_offline.py 2020-01-30 09:17:01.000000000 +0100 @@ -19,7 +19,7 @@ check = SSL.Checker.Checker( host=srv_host, - peerCertHash='0305E329FF3C9F1931B8DD3F0CF9F8E350E29839') + peerCertHash='86C01325EFBC44098723CC1567EB75A68727A3D6') x509 = X509.load_cert('tests/server.pem') self.assertTrue(check(x509, srv_host)) with self.assertRaises(SSL.Checker.WrongHost): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/tests/test_ssl_win.py new/M2Crypto-0.36.0/tests/test_ssl_win.py --- old/M2Crypto-0.35.2/tests/test_ssl_win.py 2018-10-09 14:50:01.000000000 +0200 +++ new/M2Crypto-0.36.0/tests/test_ssl_win.py 2020-07-13 22:54:39.000000000 +0200 @@ -29,7 +29,7 @@ path_dir = os.listdir(p) if 'openssl.exe' in path_dir: return os.path.join(p, 'openssl.exe') - except win32process.WindowsError: + except OSError: pass return None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/M2Crypto-0.35.2/tests/test_x509.py new/M2Crypto-0.36.0/tests/test_x509.py --- old/M2Crypto-0.35.2/tests/test_x509.py 2018-10-30 15:36:24.000000000 +0100 +++ new/M2Crypto-0.36.0/tests/test_x509.py 2020-07-13 22:54:39.000000000 +0200 @@ -15,7 +15,7 @@ import time import warnings -from M2Crypto import ASN1, BIO, EVP, RSA, Rand, X509, m2 # noqa +from M2Crypto import ASN1, BIO, EVP, RSA, Rand, X509, m2, six # noqa from tests import unittest log = logging.getLogger(__name__) @@ -592,7 +592,10 @@ with warnings.catch_warnings(): warnings.simplefilter('ignore', DeprecationWarning) - seq = base64.decodestring(b64) + if six.PY3: + seq = base64.decodebytes(b64) + else: + seq = base64.decodestring(b64) stack = X509.new_stack_from_der(seq) cert = stack.pop() @@ -612,7 +615,10 @@ with warnings.catch_warnings(): warnings.simplefilter('ignore', DeprecationWarning) - seq = base64.decodestring(b64) + if six.PY3: + seq = base64.decodebytes(b64) + else: + seq = base64.decodestring(b64) stack = X509.new_stack_from_der(seq) num = len(stack)