===============================================
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://codecov.io/github/pyca/pynacl/coverage.svg?branch=main
:target: https://codecov.io/github/pyca/pynacl?branch=main
.. 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 3.6+ as well as
PyPy 3.
.. _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
Faster wheel build
------------------
You can define the environment variable ``LIBSODIUM_MAKE_ARGS`` to pass arguments to ``make``
and enable `parallelization`_:
.. code-block:: console
$ LIBSODIUM_MAKE_ARGS=-j4 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.
.. _parallelization: https://www.gnu.org/software/make/manual/html_node/Parallel.html
.. _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.5.0 (2022-01-07)
------------------
* **BACKWARDS INCOMPATIBLE:** Removed support for Python 2.7 and Python 3.5.
* **BACKWARDS INCOMPATIBLE:** We no longer distribute ``manylinux1``
wheels.
* Added ``manylinux2014``, ``manylinux_2_24``, ``musllinux``, and macOS
``universal2`` wheels (the latter supports macOS ``arm64``).
* Update ``libsodium`` to 1.0.18-stable (July 25, 2021 release).
* Add inline type hints.
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.
Raw data
{
"_id": null,
"home_page": "https://github.com/pyca/pynacl/",
"name": "PyNaCl",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "",
"author": "The PyNaCl developers",
"author_email": "cryptography-dev@python.org",
"download_url": "https://files.pythonhosted.org/packages/a7/22/27582568be639dfe22ddb3902225f91f2f17ceff88ce80e4db396c8986da/PyNaCl-1.5.0.tar.gz",
"platform": "",
"description": "===============================================\nPyNaCl: Python binding to the libsodium library\n===============================================\n\n.. image:: https://img.shields.io/pypi/v/pynacl.svg\n :target: https://pypi.org/project/PyNaCl/\n :alt: Latest Version\n\n.. image:: https://codecov.io/github/pyca/pynacl/coverage.svg?branch=main\n :target: https://codecov.io/github/pyca/pynacl?branch=main\n\n.. image:: https://img.shields.io/pypi/pyversions/pynacl.svg\n :target: https://pypi.org/project/PyNaCl/\n :alt: Compatible Python Versions\n\nPyNaCl is a Python binding to `libsodium`_, which is a fork of the\n`Networking and Cryptography library`_. These libraries have a stated goal of\nimproving usability, security and speed. It supports Python 3.6+ as well as\nPyPy 3.\n\n.. _libsodium: https://github.com/jedisct1/libsodium\n.. _Networking and Cryptography library: https://nacl.cr.yp.to/\n\nFeatures\n--------\n\n* Digital signatures\n* Secret-key encryption\n* Public-key encryption\n* Hashing and message authentication\n* Password based key derivation and password hashing\n\n`Changelog`_\n------------\n\n.. _Changelog: https://pynacl.readthedocs.io/en/stable/changelog/\n\nInstallation\n============\n\nBinary wheel install\n--------------------\n\nPyNaCl ships as a binary wheel on macOS, Windows and Linux ``manylinux1`` [#many]_ ,\nso all dependencies are included. Make sure you have an up-to-date pip\nand run:\n\n.. code-block:: console\n\n $ pip install pynacl\n\nFaster wheel build\n------------------\n\nYou can define the environment variable ``LIBSODIUM_MAKE_ARGS`` to pass arguments to ``make``\nand enable `parallelization`_:\n\n.. code-block:: console\n\n $ LIBSODIUM_MAKE_ARGS=-j4 pip install pynacl\n\nLinux source build\n------------------\n\nPyNaCl relies on `libsodium`_, a portable C library. A copy is bundled\nwith PyNaCl so to install you can run:\n\n.. code-block:: console\n\n $ pip install pynacl\n\nIf you'd prefer to use the version of ``libsodium`` provided by your\ndistribution, you can disable the bundled copy during install by running:\n\n.. code-block:: console\n\n $ SODIUM_INSTALL=system pip install pynacl\n\n.. warning:: Usage of the legacy ``easy_install`` command provided by setuptools\n is generally discouraged, and is completely unsupported in PyNaCl's case.\n\n.. _parallelization: https://www.gnu.org/software/make/manual/html_node/Parallel.html\n\n.. _libsodium: https://github.com/jedisct1/libsodium\n\n.. [#many] `manylinux1 wheels <https://www.python.org/dev/peps/pep-0513/>`_\n are built on a baseline linux environment based on Centos 5.11\n and should work on most x86 and x86_64 glibc based linux environments.\n\nChangelog\n=========\n\n1.5.0 (2022-01-07)\n------------------\n\n* **BACKWARDS INCOMPATIBLE:** Removed support for Python 2.7 and Python 3.5.\n* **BACKWARDS INCOMPATIBLE:** We no longer distribute ``manylinux1``\n wheels.\n* Added ``manylinux2014``, ``manylinux_2_24``, ``musllinux``, and macOS\n ``universal2`` wheels (the latter supports macOS ``arm64``).\n* Update ``libsodium`` to 1.0.18-stable (July 25, 2021 release).\n* Add inline type hints.\n\n1.4.0 (2020-05-25)\n------------------\n\n* Update ``libsodium`` to 1.0.18.\n* **BACKWARDS INCOMPATIBLE:** We no longer distribute 32-bit ``manylinux1``\n wheels. Continuing to produce them was a maintenance burden.\n* Added support for Python 3.8, and removed support for Python 3.4.\n* Add low level bindings for extracting the seed and the public key\n from crypto_sign_ed25519 secret key\n* Add low level bindings for deterministic random generation.\n* Add ``wheel`` and ``setuptools`` setup_requirements in ``setup.py`` (#485)\n* Fix checks on very slow builders (#481, #495)\n* Add low-level bindings to ed25519 arithmetic functions\n* Update low-level blake2b state implementation\n* Fix wrong short-input behavior of SealedBox.decrypt() (#517)\n* Raise CryptPrefixError exception instead of InvalidkeyError when trying\n to check a password against a verifier stored in a unknown format (#519)\n* Add support for minimal builds of libsodium. Trying to call functions\n not available in a minimal build will raise an UnavailableError\n exception. To compile a minimal build of the bundled libsodium, set\n the SODIUM_INSTALL_MINIMAL environment variable to any non-empty\n string (e.g. ``SODIUM_INSTALL_MINIMAL=1``) for setup.\n\n1.3.0 2018-09-26\n----------------\n\n* Added support for Python 3.7.\n* Update ``libsodium`` to 1.0.16.\n* Run and test all code examples in PyNaCl docs through sphinx's\n doctest builder.\n* Add low-level bindings for chacha20-poly1305 AEAD constructions.\n* Add low-level bindings for the chacha20-poly1305 secretstream constructions.\n* Add low-level bindings for ed25519ph pre-hashed signing construction.\n* Add low-level bindings for constant-time increment and addition\n on fixed-precision big integers represented as little-endian\n byte sequences.\n* Add low-level bindings for the ISO/IEC 7816-4 compatible padding API.\n* Add low-level bindings for libsodium's crypto_kx... key exchange\n construction.\n* Set hypothesis deadline to None in tests/test_pwhash.py to avoid\n incorrect test failures on slower processor architectures. GitHub\n issue #370\n\n1.2.1 - 2017-12-04\n------------------\n\n* Update hypothesis minimum allowed version.\n* Infrastructure: add proper configuration for readthedocs builder\n runtime environment.\n\n1.2.0 - 2017-11-01\n------------------\n\n* Update ``libsodium`` to 1.0.15.\n* Infrastructure: add jenkins support for automatic build of\n ``manylinux1`` binary wheels\n* Added support for ``SealedBox`` construction.\n* Added support for ``argon2i`` and ``argon2id`` password hashing constructs\n and restructured high-level password hashing implementation to expose\n the same interface for all hashers.\n* Added support for 128 bit ``siphashx24`` variant of ``siphash24``.\n* Added support for ``from_seed`` APIs for X25519 keypair generation.\n* Dropped support for Python 3.3.\n\n1.1.2 - 2017-03-31\n------------------\n\n* reorder link time library search path when using bundled\n libsodium\n\n1.1.1 - 2017-03-15\n------------------\n\n* Fixed a circular import bug in ``nacl.utils``.\n\n1.1.0 - 2017-03-14\n------------------\n\n* Dropped support for Python 2.6.\n* Added ``shared_key()`` method on ``Box``.\n* You can now pass ``None`` to ``nonce`` when encrypting with ``Box`` or\n ``SecretBox`` and it will automatically generate a random nonce.\n* Added support for ``siphash24``.\n* Added support for ``blake2b``.\n* Added support for ``scrypt``.\n* Update ``libsodium`` to 1.0.11.\n* Default to the bundled ``libsodium`` when compiling.\n* All raised exceptions are defined mixing-in\n ``nacl.exceptions.CryptoError``\n\n1.0.1 - 2016-01-24\n------------------\n\n* Fix an issue with absolute paths that prevented the creation of wheels.\n\n1.0 - 2016-01-23\n----------------\n\n* PyNaCl has been ported to use the new APIs available in cffi 1.0+.\n Due to this change we no longer support PyPy releases older than 2.6.\n* Python 3.2 support has been dropped.\n* Functions to convert between Ed25519 and Curve25519 keys have been added.\n\n0.3.0 - 2015-03-04\n------------------\n\n* The low-level API (`nacl.c.*`) has been changed to match the\n upstream NaCl C/C++ conventions (as well as those of other NaCl bindings).\n The order of arguments and return values has changed significantly. To\n avoid silent failures, `nacl.c` has been removed, and replaced with\n `nacl.bindings` (with the new argument ordering). If you have code which\n calls these functions (e.g. `nacl.c.crypto_box_keypair()`), you must review\n the new docstrings and update your code/imports to match the new\n conventions.\n\n\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "Python binding to the Networking and Cryptography (NaCl) library",
"version": "1.5.0",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "9a54798738f90a6cce1079c62f4f4628",
"sha256": "401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1"
},
"downloads": -1,
"filename": "PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl",
"has_sig": false,
"md5_digest": "9a54798738f90a6cce1079c62f4f4628",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": ">=3.6",
"size": 349920,
"upload_time": "2022-01-07T22:05:49",
"upload_time_iso_8601": "2022-01-07T22:05:49.156134Z",
"url": "https://files.pythonhosted.org/packages/ce/75/0b8ede18506041c0bf23ac4d8e2971b4161cd6ce630b177d0a08eb0d8857/PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "141d8fc4b04bfb77089c90dcead1e050",
"sha256": "52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92"
},
"downloads": -1,
"filename": "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl",
"has_sig": false,
"md5_digest": "141d8fc4b04bfb77089c90dcead1e050",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": ">=3.6",
"size": 601722,
"upload_time": "2022-01-07T22:05:50",
"upload_time_iso_8601": "2022-01-07T22:05:50.989129Z",
"url": "https://files.pythonhosted.org/packages/59/bb/fddf10acd09637327a97ef89d2a9d621328850a72f1fdc8c08bdf72e385f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "2c51c427c6a122c14e26167a95bdfcd6",
"sha256": "a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394"
},
"downloads": -1,
"filename": "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "2c51c427c6a122c14e26167a95bdfcd6",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": ">=3.6",
"size": 680087,
"upload_time": "2022-01-07T22:05:52",
"upload_time_iso_8601": "2022-01-07T22:05:52.539731Z",
"url": "https://files.pythonhosted.org/packages/5d/70/87a065c37cca41a75f2ce113a5a2c2aa7533be648b184ade58971b5f7ccc/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "e3607f5868ae28a26b00e7026c38f823",
"sha256": "0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d"
},
"downloads": -1,
"filename": "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl",
"has_sig": false,
"md5_digest": "e3607f5868ae28a26b00e7026c38f823",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": ">=3.6",
"size": 856678,
"upload_time": "2022-01-07T22:05:54",
"upload_time_iso_8601": "2022-01-07T22:05:54.251763Z",
"url": "https://files.pythonhosted.org/packages/ee/87/f1bb6a595f14a327e8285b9eb54d41fef76c585a0edef0a45f6fc95de125/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "4e0f21f352ced5fe2a5da755db62764c",
"sha256": "06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858"
},
"downloads": -1,
"filename": "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "4e0f21f352ced5fe2a5da755db62764c",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": ">=3.6",
"size": 1133660,
"upload_time": "2022-01-07T22:05:56",
"upload_time_iso_8601": "2022-01-07T22:05:56.056808Z",
"url": "https://files.pythonhosted.org/packages/66/28/ca86676b69bf9f90e710571b67450508484388bfce09acf8a46f0b8c785f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "9f2ad04e49f230f435e60f3de84f8306",
"sha256": "a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b"
},
"downloads": -1,
"filename": "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl",
"has_sig": false,
"md5_digest": "9f2ad04e49f230f435e60f3de84f8306",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": ">=3.6",
"size": 663824,
"upload_time": "2022-01-07T22:05:57",
"upload_time_iso_8601": "2022-01-07T22:05:57.434006Z",
"url": "https://files.pythonhosted.org/packages/3d/85/c262db650e86812585e2bc59e497a8f59948a005325a11bbbc9ecd3fe26b/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "a1402876cfad3c019793d30ddbb9668d",
"sha256": "61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff"
},
"downloads": -1,
"filename": "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "a1402876cfad3c019793d30ddbb9668d",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": ">=3.6",
"size": 1117912,
"upload_time": "2022-01-07T22:05:58",
"upload_time_iso_8601": "2022-01-07T22:05:58.665763Z",
"url": "https://files.pythonhosted.org/packages/fd/1a/cc308a884bd299b651f1633acb978e8596c71c33ca85e9dc9fa33a5399b9/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "8e51974faf14142f881b6afd478ce2b9",
"sha256": "e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543"
},
"downloads": -1,
"filename": "PyNaCl-1.5.0-cp36-abi3-win32.whl",
"has_sig": false,
"md5_digest": "8e51974faf14142f881b6afd478ce2b9",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": ">=3.6",
"size": 204624,
"upload_time": "2022-01-07T22:06:00",
"upload_time_iso_8601": "2022-01-07T22:06:00.085192Z",
"url": "https://files.pythonhosted.org/packages/25/2d/b7df6ddb0c2a33afdb358f8af6ea3b8c4d1196ca45497dd37a56f0c122be/PyNaCl-1.5.0-cp36-abi3-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "c8b8dd769782cf55424df4d408fc77e1",
"sha256": "20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93"
},
"downloads": -1,
"filename": "PyNaCl-1.5.0-cp36-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "c8b8dd769782cf55424df4d408fc77e1",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": ">=3.6",
"size": 212141,
"upload_time": "2022-01-07T22:06:01",
"upload_time_iso_8601": "2022-01-07T22:06:01.861184Z",
"url": "https://files.pythonhosted.org/packages/5e/22/d3db169895faaf3e2eda892f005f433a62db2decbcfbc2f61e6517adfa87/PyNaCl-1.5.0-cp36-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "93989045e25f1111452cfdf5e021814d",
"sha256": "8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba"
},
"downloads": -1,
"filename": "PyNaCl-1.5.0.tar.gz",
"has_sig": true,
"md5_digest": "93989045e25f1111452cfdf5e021814d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 3392854,
"upload_time": "2022-01-07T22:05:41",
"upload_time_iso_8601": "2022-01-07T22:05:41.134526Z",
"url": "https://files.pythonhosted.org/packages/a7/22/27582568be639dfe22ddb3902225f91f2f17ceff88ce80e4db396c8986da/PyNaCl-1.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-01-07 22:05:41",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "pyca",
"github_project": "pynacl",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"tox": true,
"lcname": "pynacl"
}