Metadata-Version: 2.1 Name: PyNaCl Version: 1.3.0 Summary: Python binding to the Networking and Cryptography (NaCl) library Home-page: https://github.com/pyca/pynacl/ Author: The PyNaCl developers Author-email: cryptography-dev@python.org License: Apache License 2.0 Platform: UNKNOWN Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy 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: Programming Language :: Python :: 3.7 Provides-Extra: tests Provides-Extra: docs Requires-Dist: six Requires-Dist: cffi (>=1.4.1) Provides-Extra: docs Requires-Dist: sphinx (>=1.6.5); extra == 'docs' Requires-Dist: sphinx-rtd-theme; extra == 'docs' Provides-Extra: tests Requires-Dist: pytest (!=3.3.0,>=3.2.1); extra == 'tests' Requires-Dist: hypothesis (>=3.27.0); extra == 'tests' =============================================== PyNaCl: Python binding to the libsodium library =============================================== .. image:: https://img.shields.io/pypi/v/pynacl.svg :target: https://pypi.org/project/PyNaCl/ :alt: Latest Version .. image:: https://travis-ci.org/pyca/pynacl.svg?branch=master :target: https://travis-ci.org/pyca/pynacl .. image:: https://codecov.io/github/pyca/pynacl/coverage.svg?branch=master :target: https://codecov.io/github/pyca/pynacl?branch=master PyNaCl is a Python binding to `libsodium`_, which is a fork of the `Networking and Cryptography library`_. These libraries have a stated goal of improving usability, security and speed. It supports Python 2.7 and 3.4+ as well as PyPy 2.6+. .. _libsodium: https://github.com/jedisct1/libsodium .. _Networking and Cryptography library: https://nacl.cr.yp.to/ Features -------- * Digital signatures * Secret-key encryption * Public-key encryption * Hashing and message authentication * Password based key derivation and password hashing Installation ============ Binary wheel install -------------------- PyNaCl ships as a binary wheel on OS X, Windows and Linux ``manylinux1`` [#many]_ , so all dependencies are included. Make sure you have an up-to-date pip and run: .. code-block:: console $ pip install pynacl Linux source build ------------------ PyNaCl relies on `libsodium`_, a portable C library. A copy is bundled with PyNaCl so to install you can run: .. code-block:: console $ pip install pynacl If you'd prefer to use the version of ``libsodium`` provided by your distribution, you can disable the bundled copy during install by running: .. code-block:: console $ SODIUM_INSTALL=system pip install pynacl .. warning:: Usage of the legacy ``easy_install`` command provided by setuptools is generally discouraged, and is completely unsupported in PyNaCl's case. .. _libsodium: https://github.com/jedisct1/libsodium .. [#many] `manylinux1 wheels `_ are built on a baseline linux environment based on Centos 5.11 and should work on most x86 and x86_64 glibc based linux environments. Changelog ========= 1.3.0 2018-09-26 ---------------- * Added support for Python 3.7. * Update ``libsodium`` to 1.0.16. * Run and test all code examples in PyNaCl docs through sphinx's doctest builder. * Add low-level bindings for chacha20-poly1305 AEAD constructions. * Add low-level bindings for the chacha20-poly1305 secretstream constructions. * Add low-level bindings for ed25519ph pre-hashed signing construction. * Add low-level bindings for constant-time increment and addition on fixed-precision big integers represented as little-endian byte sequences. * Add low-level bindings for the ISO/IEC 7816-4 compatible padding API. * Add low-level bindings for libsodium's crypto_kx... key exchange construction. * Set hypothesis deadline to None in tests/test_pwhash.py to avoid incorrect test failures on slower processor architectures. GitHub issue #370 1.2.1 - 2017-12-04 ------------------ * Update hypothesis minimum allowed version. * Infrastructure: add proper configuration for readthedocs builder runtime environment. 1.2.0 - 2017-11-01 ------------------ * Update ``libsodium`` to 1.0.15. * Infrastructure: add jenkins support for automatic build of ``manylinux1`` binary wheels * Added support for ``SealedBox`` construction. * Added support for ``argon2i`` and ``argon2id`` password hashing constructs and restructured high-level password hashing implementation to expose the same interface for all hashers. * Added support for 128 bit ``siphashx24`` variant of ``siphash24``. * Added support for ``from_seed`` APIs for X25519 keypair generation. * Dropped support for Python 3.3. 1.1.2 - 2017-03-31 ------------------ * reorder link time library search path when using bundled libsodium 1.1.1 - 2017-03-15 ------------------ * Fixed a circular import bug in ``nacl.utils``. 1.1.0 - 2017-03-14 ------------------ * Dropped support for Python 2.6. * Added ``shared_key()`` method on ``Box``. * You can now pass ``None`` to ``nonce`` when encrypting with ``Box`` or ``SecretBox`` and it will automatically generate a random nonce. * Added support for ``siphash24``. * Added support for ``blake2b``. * Added support for ``scrypt``. * Update ``libsodium`` to 1.0.11. * Default to the bundled ``libsodium`` when compiling. * All raised exceptions are defined mixing-in ``nacl.exceptions.CryptoError`` 1.0.1 - 2016-01-24 ------------------ * Fix an issue with absolute paths that prevented the creation of wheels. 1.0 - 2016-01-23 ---------------- * PyNaCl has been ported to use the new APIs available in cffi 1.0+. Due to this change we no longer support PyPy releases older than 2.6. * Python 3.2 support has been dropped. * Functions to convert between Ed25519 and Curve25519 keys have been added. 0.3.0 - 2015-03-04 ------------------ * The low-level API (`nacl.c.*`) has been changed to match the upstream NaCl C/C++ conventions (as well as those of other NaCl bindings). The order of arguments and return values has changed significantly. To avoid silent failures, `nacl.c` has been removed, and replaced with `nacl.bindings` (with the new argument ordering). If you have code which calls these functions (e.g. `nacl.c.crypto_box_keypair()`), you must review the new docstrings and update your code/imports to match the new conventions.