[Python-modules-commits] [tlslite-ng] 01/03: New upstream version 0.7.0

Daniel Stender stender at moszumanska.debian.org
Sat Aug 5 19:48:32 UTC 2017


This is an automated email from the git hooks/post-receive script.

stender pushed a commit to branch debian/master
in repository tlslite-ng.

commit d0b84eee076a177ad92d25ea96d25097e999426c
Author: Daniel Stender <stender at debian.org>
Date:   Sat Aug 5 21:42:08 2017 +0200

    New upstream version 0.7.0
---
 .codeclimate.yml                                   |   31 +
 .travis.yml                                        |  131 ++
 CONTRIBUTING.md                                    |   15 +-
 MANIFEST.in                                        |    4 +-
 Makefile                                           |    7 +-
 README                                             |    7 +-
 README.md                                          |   43 +-
 docs/Makefile                                      |  225 +++
 docs/conf.py                                       |  340 +++++
 docs/index.rst                                     |   20 +
 docs/make.bat                                      |  281 ++++
 docs/modules.rst                                   |    7 +
 docs/tlslite.api.rst                               |    8 +
 docs/tlslite.basedb.rst                            |    9 +
 docs/tlslite.bufferedsocket.rst                    |    8 +
 docs/tlslite.checker.rst                           |    8 +
 docs/tlslite.constants.rst                         |    7 +
 docs/tlslite.defragmenter.rst                      |    8 +
 docs/tlslite.dh.rst                                |    8 +
 docs/tlslite.errors.rst                            |    8 +
 docs/tlslite.extensions.rst                        |    8 +
 docs/tlslite.handshakehashes.rst                   |    8 +
 docs/tlslite.handshakehelpers.rst                  |    7 +
 docs/tlslite.handshakesettings.rst                 |    8 +
 docs/tlslite.integration.asyncstatemachine.rst     |    8 +
 docs/tlslite.integration.clienthelper.rst          |    8 +
 docs/tlslite.integration.httptlsconnection.rst     |    8 +
 docs/tlslite.integration.imap4_tls.rst             |    8 +
 docs/tlslite.integration.pop3_tls.rst              |    8 +
 docs/tlslite.integration.rst                       |   25 +
 docs/tlslite.integration.smtp_tls.rst              |    8 +
 ...tlslite.integration.tlsasyncdispatchermixin.rst |    8 +
 docs/tlslite.integration.tlssocketservermixin.rst  |    8 +
 docs/tlslite.integration.xmlrpcserver.rst          |    8 +
 docs/tlslite.integration.xmlrpctransport.rst       |    8 +
 docs/tlslite.keyexchange.rst                       |    8 +
 docs/tlslite.mathtls.rst                           |    8 +
 docs/tlslite.messages.rst                          |    8 +
 docs/tlslite.messagesocket.rst                     |    8 +
 docs/tlslite.recordlayer.rst                       |    8 +
 docs/tlslite.rst                                   |   47 +
 docs/tlslite.session.rst                           |    8 +
 docs/tlslite.sessioncache.rst                      |    8 +
 docs/tlslite.tlsconnection.rst                     |    8 +
 docs/tlslite.tlsrecordlayer.rst                    |    8 +
 docs/tlslite.utils.aes.rst                         |    8 +
 docs/tlslite.utils.aesgcm.rst                      |    8 +
 docs/tlslite.utils.asn1parser.rst                  |    8 +
 docs/tlslite.utils.chacha.rst                      |    8 +
 docs/tlslite.utils.chacha20_poly1305.rst           |    8 +
 docs/tlslite.utils.cipherfactory.rst               |    8 +
 docs/tlslite.utils.codec.rst                       |    8 +
 docs/tlslite.utils.compat.rst                      |    8 +
 docs/tlslite.utils.constanttime.rst                |    8 +
 docs/tlslite.utils.cryptomath.rst                  |    8 +
 docs/tlslite.utils.datefuncs.rst                   |    8 +
 docs/tlslite.utils.dns_utils.rst                   |    8 +
 docs/tlslite.utils.ecc.rst                         |    8 +
 docs/tlslite.utils.keyfactory.rst                  |    8 +
 docs/tlslite.utils.lists.rst                       |    8 +
 docs/tlslite.utils.openssl_aes.rst                 |    8 +
 docs/tlslite.utils.openssl_rc4.rst                 |    8 +
 docs/tlslite.utils.openssl_rsakey.rst              |    8 +
 docs/tlslite.utils.openssl_tripledes.rst           |    8 +
 docs/tlslite.utils.pem.rst                         |    8 +
 docs/tlslite.utils.poly1305.rst                    |    8 +
 docs/tlslite.utils.pycrypto_aes.rst                |    8 +
 docs/tlslite.utils.pycrypto_aesgcm.rst             |    8 +
 docs/tlslite.utils.pycrypto_rc4.rst                |    8 +
 docs/tlslite.utils.pycrypto_rsakey.rst             |    8 +
 docs/tlslite.utils.pycrypto_tripledes.rst          |    8 +
 docs/tlslite.utils.python_aes.rst                  |    8 +
 docs/tlslite.utils.python_aesgcm.rst               |    8 +
 docs/tlslite.utils.python_chacha20_poly1305.rst    |    8 +
 docs/tlslite.utils.python_rc4.rst                  |    8 +
 docs/tlslite.utils.python_rsakey.rst               |    8 +
 docs/tlslite.utils.rc4.rst                         |    8 +
 docs/tlslite.utils.rijndael.rst                    |    8 +
 docs/tlslite.utils.rsakey.rst                      |    8 +
 docs/tlslite.utils.rst                             |   53 +
 docs/tlslite.utils.tackwrapper.rst                 |    8 +
 docs/tlslite.utils.tlshashlib.rst                  |    8 +
 docs/tlslite.utils.tripledes.rst                   |    8 +
 docs/tlslite.utils.x25519.rst                      |    8 +
 docs/tlslite.verifierdb.rst                        |    8 +
 docs/tlslite.x509.rst                              |    8 +
 docs/tlslite.x509certchain.rst                     |    8 +
 pylintrc                                           |  345 +++++
 scripts/tls.py                                     |   38 +-
 setup.py                                           |    9 +-
 tests/serverRSAPSSCert.pem                         |   20 +
 tests/serverRSAPSSKey.pem                          |   28 +
 tests/serverRSAPSSSigCert.pem                      |   21 +
 tests/serverRSAPSSSigKey.pem                       |   28 +
 tests/tlstest.py                                   |  109 +-
 tlslite/__init__.py                                |    2 +-
 tlslite/api.py                                     |    3 +-
 tlslite/basedb.py                                  |   32 +-
 tlslite/bufferedsocket.py                          |    4 +-
 tlslite/checker.py                                 |   37 +-
 tlslite/constants.py                               |  581 +++++---
 tlslite/defragmenter.py                            |   10 +-
 tlslite/dh.py                                      |   42 +
 tlslite/errors.py                                  |  148 +-
 tlslite/extensions.py                              |  491 ++++---
 tlslite/handshakehashes.py                         |   16 +-
 tlslite/handshakehelpers.py                        |    5 +-
 tlslite/handshakesettings.py                       |  216 +--
 tlslite/integration/asyncstatemachine.py           |   21 +-
 tlslite/integration/clienthelper.py                |   58 +-
 tlslite/integration/httptlsconnection.py           |   84 +-
 tlslite/integration/imap4_tls.py                   |   56 +-
 tlslite/integration/pop3_tls.py                    |   55 +-
 tlslite/integration/smtp_tls.py                    |   46 +-
 tlslite/integration/tlsasyncdispatchermixin.py     |   28 +-
 tlslite/integration/tlssocketservermixin.py        |    8 +-
 tlslite/integration/xmlrpcserver.py                |   16 +-
 tlslite/integration/xmlrpctransport.py             |   59 +-
 tlslite/keyexchange.py                             |  427 ++++--
 tlslite/mathtls.py                                 |  460 +++++-
 tlslite/messages.py                                |  538 ++++---
 tlslite/messagesocket.py                           |   51 +-
 tlslite/recordlayer.py                             |   94 +-
 tlslite/session.py                                 |   46 +-
 tlslite/sessioncache.py                            |   16 +-
 tlslite/tlsconnection.py                           |  772 ++++++----
 tlslite/tlsrecordlayer.py                          |  232 +--
 tlslite/utils/asn1parser.py                        |   68 +-
 tlslite/utils/cipherfactory.py                     |   52 +-
 tlslite/utils/codec.py                             |  359 ++++-
 tlslite/utils/compat.py                            |    4 +
 tlslite/utils/constanttime.py                      |   82 +-
 tlslite/utils/cryptomath.py                        |   63 +-
 tlslite/utils/dns_utils.py                         |   42 +
 tlslite/utils/keyfactory.py                        |   68 +-
 tlslite/utils/lists.py                             |   25 +
 tlslite/utils/poly1305.py                          |   10 +-
 tlslite/utils/python_rsakey.py                     |   34 +-
 tlslite/utils/rijndael.py                          | 1048 +++++++++++---
 tlslite/utils/rsakey.py                            |  377 ++++-
 tlslite/utils/x25519.py                            |  136 ++
 tlslite/verifierdb.py                              |   53 +-
 tlslite/x509.py                                    |   75 +-
 tlslite/x509certchain.py                           |   26 +-
 unit_tests/test_tlslite_constants.py               |   41 +-
 unit_tests/test_tlslite_dh.py                      |   54 +
 unit_tests/test_tlslite_extensions.py              |  110 +-
 unit_tests/test_tlslite_handshakesettings.py       |   24 +
 unit_tests/test_tlslite_keyexchange.py             |  727 +++++++++-
 unit_tests/test_tlslite_mathtls.py                 |   43 +-
 unit_tests/test_tlslite_messages.py                |   96 +-
 unit_tests/test_tlslite_tlsconnection.py           |   16 +-
 unit_tests/test_tlslite_utils_codec.py             |  129 ++
 unit_tests/test_tlslite_utils_cryptomath.py        |  155 +-
 unit_tests/test_tlslite_utils_dns_utils.py         |   40 +
 unit_tests/test_tlslite_utils_keyfactory.py        |   60 +
 unit_tests/test_tlslite_utils_lists.py             |   35 +
 unit_tests/test_tlslite_utils_rijndael.py          |  253 ++++
 unit_tests/test_tlslite_utils_rsakey.py            | 1521 +++++++++++++++++++-
 unit_tests/test_tlslite_utils_x25519.py            |  382 +++++
 160 files changed, 11133 insertions(+), 2138 deletions(-)

diff --git a/.codeclimate.yml b/.codeclimate.yml
new file mode 100644
index 0000000..e71671a
--- /dev/null
+++ b/.codeclimate.yml
@@ -0,0 +1,31 @@
+engines:
+  radon:
+    enabled: true
+    config:
+      threshold: "C"
+  pep8:
+    enabled: true
+  duplication:
+    enabled: true
+    exclude_fingerprints:
+    # duplication in tlslite/utils/codec.py Writer.addTwo() .addFour()
+    - 2e783666ce368f4223c1e7f5b162e2d9
+    - 2c398389f33ea2572edefc5370ed49c0
+    config:
+      languages:
+      - python
+  fixme:
+    enabled: true
+    checks:
+      bug:
+        enabled: true
+  markdownlint:
+    enabled: true
+ratings:
+  paths:
+  - "tlslite/**"
+  - "**.py"
+exclude_paths:
+ - "tests/**/*"
+ - "scripts/**/*"
+ - "unit_tests/**/*"
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..5bca964
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,131 @@
+language: python
+
+# whitelist branches on which tests will be run
+branches:
+  only:
+    - master
+
+addons:
+  apt_packages:
+    # needed for M2Crypto
+    - swig
+    # needed for GMPY
+    - libgmp-dev
+
+python:
+  - 2.6
+  - 2.7
+  - 3.2
+  - 3.3
+  - 3.4
+  - 3.5
+  - 3.6
+
+env:
+  - TACKPY=true
+  - TACKPY=false
+
+matrix:
+  exclude:
+    - env: TACKPY=true
+  include:
+    - python: 2.7
+      env: TACKPY=true
+    - python: 3.4
+      env: TACKPY=true
+    - python: 2.7
+      env: M2CRYPTO=true
+# no M2crypto on Python 3
+    - python: 2.7
+      env: PYCRYPTO=true
+    - python: 3.4
+      env: PYCRYPTO=true
+    - python: 3.5
+      env: PYCRYPTO=true
+    - python: 3.6
+      env: PYCRYPTO=true
+    - python: 2.7
+      env: GMPY=true
+    - python: 3.4
+      env: GMPY=true
+    - python: 3.5
+      env: GMPY=true
+    - python: 3.6
+      env: GMPY=true
+    - python: 2.7
+      env: M2CRYPTO=true PYCRYPTO=true GMPY=true
+    - python: 3.4
+      env: PYCRYPTO=true GMPY=true
+    - python: 3.5
+      env: PYCRYPTO=true GMPY=true
+    - python: 3.6
+      env: PYCRYPTO=true GMPY=true
+
+before_install:
+  - |
+       echo -e "TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST\n" \
+               "TRAVIS_REPO_SLUG=$TRAVIS_REPO_SLUG\n" \
+               "TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST\n" \
+               "TRAVIS_COMMIT=$TRAVIS_COMMIT\n" \
+               "TRAVIS_PYTHON_VERSION=$TRAVIS_PYTHON_VERSION"
+  - |
+       # workaround https://github.com/travis-ci/travis-ci/issues/2666
+       if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
+         URL="https://github.com/${TRAVIS_REPO_SLUG}/pull/${TRAVIS_PULL_REQUEST}.patch"
+         # `--location` makes curl follow redirects
+         PR_FIRST=$(curl --silent --show-error --location $URL | head -1 | grep -o -E '\b[0-9a-f]{40}\b' | tr -d '\n')
+         TRAVIS_COMMIT_RANGE=$PR_FIRST^..$TRAVIS_COMMIT
+       fi
+  # sanity check current commit
+  - git rev-parse HEAD
+  - echo "TRAVIS_COMMIT_RANGE=$TRAVIS_COMMIT_RANGE"
+  - git fetch origin master:refs/remotes/origin/master
+
+install:
+  - if [[ $TRAVIS_PYTHON_VERSION == '2.6' ]]; then travis_retry pip install unittest2; fi
+  - if [[ $TACKPY == 'true' ]]; then travis_retry pip install tackpy; fi
+  - if [[ $M2CRYPTO == 'true' ]]; then travis_retry pip install --pre m2crypto; fi
+  - if [[ $PYCRYPTO == 'true' ]]; then travis_retry pip install pycrypto; fi
+  - if [[ $GMPY == 'true' ]]; then travis_retry pip install gmpy; fi
+  - if [[ $TRAVIS_PYTHON_VERSION == '3.2' ]]; then travis_retry pip install 'coverage<4' 'hypothesis<1.10'; elif [[ $TRAVIS_PYTHON_VERSION == '2.6' ]]; then travis_retry pip install coverage 'hypothesis<3'; else travis_retry pip install coverage hypothesis; fi
+  - travis_retry pip install -r requirements.txt
+  - travis_retry pip install -r build-requirements.txt
+
+script:
+  - |
+      if [[ $TRAVIS_PYTHON_VERSION == '2.6' ]]; then
+          coverage run --branch --source tlslite -m unittest2 discover;
+      else
+          coverage run --branch --source tlslite -m unittest discover;
+      fi
+  - coverage report -m
+  - ./setup.py install && make test
+  # pylint doesn't work on 2.6: https://bitbucket.org/logilab/pylint/issue/390/py26-compatiblity-broken
+  # diff-quality doesn't work on 3.2: https://github.com/edx/diff-cover/issues/94
+  - |
+      if [[ $TRAVIS_PYTHON_VERSION != '2.6' ]] && [[ $TRAVIS_PYTHON_VERSION != '3.2' ]]; then
+        pylint --msg-template="{path}:{line}: [{msg_id}({symbol}), {obj}] {msg}" tlslite > pylint_report.txt || :
+        diff-quality --violations=pylint --fail-under=90 pylint_report.txt
+      fi
+  - |
+      if [[ $TRAVIS_PULL_REQUEST != "false" ]]; then
+        echo "Will test commits between $TRAVIS_COMMIT_RANGE:"
+        git log --oneline --reverse $TRAVIS_COMMIT_RANGE
+
+        for i in $(git log --pretty=format:%H --reverse $TRAVIS_COMMIT_RANGE); do
+          git checkout $i
+          make clean
+          if [[ $TRAVIS_PYTHON_VERSION == '2.6' ]]; then
+            unit2 discover || exit 1
+          else
+            python -m unittest discover || exit 1
+          fi
+          make test-local || exit 1
+          cd $TRAVIS_BUILD_DIR
+        done
+      fi
+
+sudo: false
+
+after_success:
+ - coveralls
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 1ff5f60..9974164 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -27,8 +27,7 @@ The list goes as follows:
 * git
 * GNU make
 * pip
-* epydoc (you need to [patch](https://sourceforge.net/p/epydoc/bugs/342/)
-  the `epydoc/docparser.py`!)
+* sphinx
 
 The python module dependencies are as follows:
 
@@ -46,12 +45,9 @@ On Fedora they can be installed using:
 ```
 dnf install python-ecdsa python3-ecdsa pylint python3-pylint python-diff-cover \
     python3-diff-cover python-coverage python3-coverage python2-hypothesis \
-    python3-hypothesis python3-libs python-unittest2 python-mock epydoc
+    python3-hypothesis python3-libs python-unittest2 python-mock python3-sphinx
 ```
 
-Then edit `epydoc/docparser.py` using
-[patch](https://sourceforge.net/p/epydoc/bugs/342/)
-
 On RHEL 7 you will need to enable [EPEL](https://fedoraproject.org/wiki/EPEL),
 and install [pip](https://pip.pypa.io/en/stable/installing/) for Python3,
 after which you can install the dependencies using:
@@ -59,14 +55,11 @@ after which you can install the dependencies using:
 ```
 yum install python-ecdsa python34-ecdsa pylint \
     python-coverage python34-coverage python2-hypothesis \
-    python34-libs python-unittest2 python-mock python-pip
-pip2 install diff-cover epydoc
+    python34-libs python-unittest2 python-mock python-pip python-sphinx
+pip2 install diff-cover
 pip3 install hypothesis diff-cover pylint
 ```
 
-Then edit `epydoc/docparser.py` using
-[patch](https://sourceforge.net/p/epydoc/bugs/342/)
-
 Optional module dependencies:
 
 * tackpy
diff --git a/MANIFEST.in b/MANIFEST.in
index 340da69..43fa193 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,6 +1,6 @@
 recursive-include tests *
-recursive-include docs *
+recursive-include docs/_build/html *
 include LICENSE
 include README
 include Makefile
-include MANIFEST.in
\ No newline at end of file
+include MANIFEST.in
diff --git a/Makefile b/Makefile
index 304f143..1ba0c14 100644
--- a/Makefile
+++ b/Makefile
@@ -27,12 +27,13 @@ clean:
 	rm -rf unit_tests/*.pyc
 	rm -rf unit_tests/__pycache__
 	rm -rf dist
-	rm -rf docs
 	rm -rf build
 	rm -f MANIFEST
+	$(MAKE) -C docs clean
 
+.PHONY : docs
 docs:
-	epydoc --html -v --introspect-only -o docs --graph all tlslite
+	$(MAKE) -C docs html
 
 dist: docs
 	./setup.py sdist
@@ -66,7 +67,7 @@ ifndef PYTHON3
 	cd tests/ && PYTHONPATH=.. python ./tlstest.py client localhost:4433 .
 endif
 endif
-	epydoc --check --fail-on-error -v tlslite
+	$(MAKE) -C docs dummy
 	pylint --msg-template="{path}:{line}: [{msg_id}({symbol}), {obj}] {msg}" tlslite > pylint_report.txt || :
 	diff-quality --violations=pylint --fail-under=90 pylint_report.txt
 ifdef COVERAGE2
diff --git a/README b/README
index 6ee377a..5c65e7c 100644
--- a/README
+++ b/README
@@ -12,11 +12,13 @@ Functionality implemented include:
  - MD5, SHA1, SHA256 and SHA384 HMACs as well as AEAD mode of operation with
    GCM or Poly1305 authenticator
  - RSA, DHE_RSA and ECDHE_RSA key exchange
- - full set of signature hashes (md5, sha1, sha224, sha256, sha384 and sha512)
-   for ServerKeyExchange and CertfificateVerify in TLS v1.2
+ - full set of signature hashes (md5, sha1, sha224, sha256, sha384, sha512,
+   rsa_pss_sha256, rsa_pss_sha384 and rsa_pss_sha512) for ServerKeyExchange
+   and CertfificateVerify in TLS v1.2
  - secp256r1, secp384r1, secp521r1, secp256k1, secp224r1 and secp192r1 curves
    for ECDHE_RSA key exchange (support for last two depends on the version
    of ecdsa library used)
+ - x25519 and x448 curves for ECDHE_RSA key exchage (RFC 7748. RFC 4492bis)
  - anonymous DHE key exchange
  - anonymous ECDH key exchange
  - NULL encryption ciphersuites
@@ -29,6 +31,7 @@ Functionality implemented include:
  - Keying material exporter (RFC 5705)
  - Next Protocol Negotiation
  - Application-Layer Protocol Negotiation Extension (RFC 7301)
+ - FFDHE prime/group negotiation (RFC 7919)
 
 
 tlslite-ng aims to be a drop-in replacement for tlslite while providing more
diff --git a/README.md b/README.md
index ddbe7d8..cd63369 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
 ```
-tlslite-ng version 0.6.0                                           2016-09-07
+tlslite-ng version 0.7.0                                           2017-07-31
 Hubert Kario <hkario at redhat.com>
 https://github.com/tomato42/tlslite-ng/
 ```
@@ -36,8 +36,9 @@ python socket interface or as a backend for multiple other libraries.
 tlslite-ng is pure python, however it can use other libraries for faster crypto
 operations. tlslite-ng integrates with several stdlib neworking libraries.
 
-API documentation is available in the 'docs' directory of the PyPI package
-or can be automatically generated using `make docs` with Epydoc installed.
+API documentation is available in the `docs/_build/html` directory of the PyPI
+package
+or can be automatically generated using `make docs` with Sphinx installed.
 
 If you have questions or feedback, feel free to contact me. Issues and pull
 requests can also be submitted through github issue tracking system, see
@@ -57,12 +58,15 @@ Implemented features of TLS include:
 * Extended master secret
 * padding extension
 * keying material exporter
+* RSA-PSS signatures in TLSv1.2, RSA-PSS in certificates (TLSv1.3 extension)
+* X25519 and X448 ECDHE key exchange
 * (experimental) TACK extension
 
 2 Licenses/Acknowledgements
 ============================
 
-tlslite-ng is a fork of TLS Lite. TLS Lite was written (mostly) by Trevor
+tlslite-ng is a fork of TLS Lite, it is currently maintained and developed by
+Hubert Kario. TLS Lite was written (mostly) by Trevor
 Perrin. It includes code from Bram Cohen, Google, Kees Bos, Sam Rushing,
 Dimitris Moraitis, Marcelo Fernandez, Martin von Loewis, Dave Baggett, Yngve
 N. Pettersen (ported by Paul Sokolovsky), Mirko Dziadzka, David Benjamin,
@@ -74,8 +78,6 @@ details.
 
 Currently it is distributed under Gnu LGPLv2 license.
 
-Thanks to Edward Loper for Epydoc, which generated the API docs.
-
 3 Installation
 ===============
 
@@ -584,6 +586,35 @@ encrypt-then-MAC mode for CBC ciphers.
 12 History
 ===========
 
+0.7.0 - 2017-07-31
+
+* enable and add missing definitions of TLS_ECDHE_RSA_WITH_RC4_128_SHA and
+  TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
+* add definitions of some ECDHE_ECDSA, ECDH_ECDSA and ECDH_RSA ciphersuites,
+  they remain unsupported, but IDs are useful for other projects
+* basic support for RSA-PSS (Tomas Foukal)
+* support for RSA-PSS in TLSv1.2
+* better documentation for Parser and ASN1Parser
+* stricter checks on network messages
+* faster Codec (faster encoding of messages to binary format)
+* faster AES implementation initialization
+* ability to set custom Diffie-Hellman parameters for connection
+* support for negotiation of bigger Diffie-Hellman groups using RFC 7919
+  mechanism
+* fix sent alerts in case the ALPN extension is malformed
+* add support for checking SNI on server side, making sure we send valid
+  hostnames in extension
+* fix testsuite when run on Windows
+* fix interoperability issue in DHE key exchange (failure happening in about
+  1 in 256 negotiations) caused by handling of Server Key Exchange messages
+* Fix incorrect handling of Extended Master Secret with client certificates,
+  follow RFC recommendations with regards to session resumption, reject
+  non-empty
+* Allow negotiation of ECDHE ciphersuites even if client doesn't advertise
+  any curves, default to P-256 curve support, support configuring the default
+* Stricter checks on received SNI (server_name) extension
+* Support for x25519 and x448 curve for ECDHE
+
 0.6.0 - 2016-09-07
 
 * added support for ALPN from RFC 7301
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 0000000..1e21bbc
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,225 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+PAPER         =
+BUILDDIR      = _build
+
+# Internal variables.
+PAPEROPT_a4     = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+# the i18n builder cannot share the environment and doctrees with the others
+I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.PHONY: help
+help:
+	@echo "Please use \`make <target>' where <target> is one of"
+	@echo "  html       to make standalone HTML files"
+	@echo "  dirhtml    to make HTML files named index.html in directories"
+	@echo "  singlehtml to make a single large HTML file"
+	@echo "  pickle     to make pickle files"
+	@echo "  json       to make JSON files"
+	@echo "  htmlhelp   to make HTML files and a HTML help project"
+	@echo "  qthelp     to make HTML files and a qthelp project"
+	@echo "  applehelp  to make an Apple Help Book"
+	@echo "  devhelp    to make HTML files and a Devhelp project"
+	@echo "  epub       to make an epub"
+	@echo "  epub3      to make an epub3"
+	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
+	@echo "  latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
+	@echo "  text       to make text files"
+	@echo "  man        to make manual pages"
+	@echo "  texinfo    to make Texinfo files"
+	@echo "  info       to make Texinfo files and run them through makeinfo"
+	@echo "  gettext    to make PO message catalogs"
+	@echo "  changes    to make an overview of all changed/added/deprecated items"
+	@echo "  xml        to make Docutils-native XML files"
+	@echo "  pseudoxml  to make pseudoxml-XML files for display purposes"
+	@echo "  linkcheck  to check all external links for integrity"
+	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
+	@echo "  coverage   to run coverage check of the documentation (if enabled)"
+	@echo "  dummy      to check syntax errors of document sources"
+
+.PHONY: clean
+clean:
+	rm -rf $(BUILDDIR)/*
+
+.PHONY: html
+html:
+	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+	@echo
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+.PHONY: dirhtml
+dirhtml:
+	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+	@echo
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+.PHONY: singlehtml
+singlehtml:
+	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+	@echo
+	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+.PHONY: pickle
+pickle:
+	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+	@echo
+	@echo "Build finished; now you can process the pickle files."
+
+.PHONY: json
+json:
+	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+	@echo
+	@echo "Build finished; now you can process the JSON files."
+
+.PHONY: htmlhelp
+htmlhelp:
+	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+	@echo
+	@echo "Build finished; now you can run HTML Help Workshop with the" \
+	      ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+.PHONY: qthelp
+qthelp:
+	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+	@echo
+	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
+	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/tlslite-ng.qhcp"
+	@echo "To view the help file:"
+	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/tlslite-ng.qhc"
+
+.PHONY: applehelp
+applehelp:
+	$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
+	@echo
+	@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
+	@echo "N.B. You won't be able to view it unless you put it in" \
+	      "~/Library/Documentation/Help or install it in your application" \
+	      "bundle."
+
+.PHONY: devhelp
+devhelp:
+	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+	@echo
+	@echo "Build finished."
+	@echo "To view the help file:"
+	@echo "# mkdir -p $$HOME/.local/share/devhelp/tlslite-ng"
+	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/tlslite-ng"
+	@echo "# devhelp"
+
+.PHONY: epub
+epub:
+	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+	@echo
+	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+.PHONY: epub3
+epub3:
+	$(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
+	@echo
+	@echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
+
+.PHONY: latex
+latex:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo
+	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+	@echo "Run \`make' in that directory to run these through (pdf)latex" \
+	      "(use \`make latexpdf' here to do that automatically)."
+
+.PHONY: latexpdf
+latexpdf:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo "Running LaTeX files through pdflatex..."
+	$(MAKE) -C $(BUILDDIR)/latex all-pdf
+	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+.PHONY: latexpdfja
+latexpdfja:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo "Running LaTeX files through platex and dvipdfmx..."
+	$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
+	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+.PHONY: text
+text:
+	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+	@echo
+	@echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+.PHONY: man
+man:
+	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+	@echo
+	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+.PHONY: texinfo
+texinfo:
+	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+	@echo
+	@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
+	@echo "Run \`make' in that directory to run these through makeinfo" \
+	      "(use \`make info' here to do that automatically)."
+
+.PHONY: info
+info:
+	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+	@echo "Running Texinfo files through makeinfo..."
+	make -C $(BUILDDIR)/texinfo info
+	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
+
+.PHONY: gettext
+gettext:
+	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
+	@echo
+	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
+
+.PHONY: changes
+changes:
+	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+	@echo
+	@echo "The overview file is in $(BUILDDIR)/changes."
+
+.PHONY: linkcheck
+linkcheck:
+	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+	@echo
+	@echo "Link check complete; look for any errors in the above output " \
+	      "or in $(BUILDDIR)/linkcheck/output.txt."
+
+.PHONY: doctest
+doctest:
+	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+	@echo "Testing of doctests in the sources finished, look at the " \
+	      "results in $(BUILDDIR)/doctest/output.txt."
+
+.PHONY: coverage
+coverage:
+	$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
+	@echo "Testing of coverage in the sources finished, look at the " \
+	      "results in $(BUILDDIR)/coverage/python.txt."
+
+.PHONY: xml
+xml:
+	$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
+	@echo
+	@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
+
+.PHONY: pseudoxml
+pseudoxml:
+	$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
+	@echo
+	@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
+
+.PHONY: dummy
+dummy:
+	$(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
+	@echo
+	@echo "Build finished. Dummy builder generates no files."
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 0000000..2295381
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1,340 @@
+# -*- coding: utf-8 -*-
+#
+# tlslite-ng documentation build configuration file, created by
+# sphinx-quickstart on Thu Jul 20 13:51:42 2017.
+#
+# This file is execfile()d with the current directory set to its
+# containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+import os
+import sys
+sys.path.insert(0, os.path.abspath('..'))
+
+# -- General configuration ------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+    'sphinx.ext.autodoc',
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+# source_suffix = ['.rst', '.md']
+source_suffix = '.rst'
+
+# The encoding of source files.
+#
+# source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'tlslite-ng'
+copyright = u'2017, Hubert Kario'
+author = u'Hubert Kario'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = u'0.7'
+# The full version, including alpha/beta/rc tags.
+release = u'0.7.0'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#
+# today = ''
+#
+# Else, today_fmt is used as the format for a strftime call.
+#
+# today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This patterns also effect to html_static_path and html_extra_path
+exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
+
+# The reST default role (used for this markup: `text`) to use for all
+# documents.
+#
+# default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#
+# add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#
+# add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#
+# show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+# modindex_common_prefix = []
+
+# If true, keep warnings as "system message" paragraphs in the built documents.
+# keep_warnings = False
+
+# If true, `todo` and `todoList` produce output, else they produce nothing.
+todo_include_todos = False
+
+
+# -- Options for HTML output ----------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'alabaster'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+#
+# html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+# html_theme_path = []
+
+# The name for this set of Sphinx documents.
+# "<project> v<release> documentation" by default.
+#
+# html_title = u'tlslite-ng v0.7.0-alpha9'
+
+# A shorter title for the navigation bar.  Default is the same as html_title.
+#
+# html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#
+# html_logo = None
+
+# The name of an image file (relative to this directory) to use as a favicon of
+# the docs.  This file should be a Windows icon file (.ico) being 16x16 or
+# 32x32 pixels large.
+#
+# html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Add any extra paths that contain custom files (such as robots.txt or
+# .htaccess) here, relative to this directory. These files are copied
+# directly to the root of the documentation.
+#
+# html_extra_path = []
+
+# If not None, a 'Last updated on:' timestamp is inserted at every page
+# bottom, using the given strftime format.
+# The empty string is equivalent to '%b %d, %Y'.
+#
+# html_last_updated_fmt = None
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#
+# html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#
+# html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#
+# html_additional_pages = {}
+
+# If false, no module index is generated.
+#
+# html_domain_indices = True
+
+# If false, no index is generated.
+#
+# html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#
+# html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#
+# html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+#
+# html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#
+# html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it.  The value of this option must be the
+# base URL from which the finished HTML is served.
+#
+# html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+# html_file_suffix = None
+
+# Language to be used for generating the HTML full-text search index.
+# Sphinx supports the following languages:
... 17528 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/tlslite-ng.git



More information about the Python-modules-commits mailing list