Metadata-Version: 2.1
Name: PyNaCl
Version: 1.4.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
Description: ===============================================
        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
        
        .. image:: https://img.shields.io/pypi/pyversions/pynacl.svg
            :target: https://pypi.org/project/PyNaCl/
            :alt: Compatible Python Versions
        
        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.5+ 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
        
        `Changelog`_
        ------------
        
        .. _Changelog: https://pynacl.readthedocs.io/en/stable/changelog/
        
        Installation
        ============
        
        Binary wheel install
        --------------------
        
        PyNaCl ships as a binary wheel on macOS, 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 <https://www.python.org/dev/peps/pep-0513/>`_
            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.4.0 (2020-05-25)
        ------------------
        
        * Update ``libsodium`` to 1.0.18.
        * **BACKWARDS INCOMPATIBLE:** We no longer distribute 32-bit ``manylinux1``
          wheels. Continuing to produce them was a maintenance burden.
        * Added support for Python 3.8, and removed support for Python 3.4.
        * Add low level bindings for extracting the seed and the public key
          from crypto_sign_ed25519 secret key
        * Add low level bindings for deterministic random generation.
        * Add ``wheel`` and ``setuptools`` setup_requirements in ``setup.py`` (#485)
        * Fix checks on very slow builders (#481, #495)
        * Add low-level bindings to ed25519 arithmetic functions
        * Update low-level blake2b state implementation
        * Fix wrong short-input behavior of SealedBox.decrypt() (#517)
        * Raise CryptPrefixError exception instead of InvalidkeyError when trying
          to check a password against a verifier stored in a unknown format (#519)
        * Add support for minimal builds of libsodium. Trying to call functions
          not available in a minimal build will raise an UnavailableError
          exception. To compile a minimal build of the bundled libsodium, set
          the SODIUM_INSTALL_MINIMAL environment variable to any non-empty
          string (e.g. ``SODIUM_INSTALL_MINIMAL=1``) for setup.
        
        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.
        
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.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
Provides-Extra: tests
Provides-Extra: docs
