METADATA 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. Metadata-Version: 2.1
  2. Name: PyNaCl
  3. Version: 1.5.0
  4. Summary: Python binding to the Networking and Cryptography (NaCl) library
  5. Home-page: https://github.com/pyca/pynacl/
  6. Author: The PyNaCl developers
  7. Author-email: cryptography-dev@python.org
  8. License: Apache License 2.0
  9. Platform: UNKNOWN
  10. Classifier: Programming Language :: Python :: Implementation :: CPython
  11. Classifier: Programming Language :: Python :: Implementation :: PyPy
  12. Classifier: Programming Language :: Python :: 3
  13. Classifier: Programming Language :: Python :: 3.6
  14. Classifier: Programming Language :: Python :: 3.7
  15. Classifier: Programming Language :: Python :: 3.8
  16. Classifier: Programming Language :: Python :: 3.9
  17. Classifier: Programming Language :: Python :: 3.10
  18. Requires-Python: >=3.6
  19. License-File: LICENSE
  20. Requires-Dist: cffi (>=1.4.1)
  21. Provides-Extra: docs
  22. Requires-Dist: sphinx (>=1.6.5) ; extra == 'docs'
  23. Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
  24. Provides-Extra: tests
  25. Requires-Dist: pytest (!=3.3.0,>=3.2.1) ; extra == 'tests'
  26. Requires-Dist: hypothesis (>=3.27.0) ; extra == 'tests'
  27. ===============================================
  28. PyNaCl: Python binding to the libsodium library
  29. ===============================================
  30. .. image:: https://img.shields.io/pypi/v/pynacl.svg
  31. :target: https://pypi.org/project/PyNaCl/
  32. :alt: Latest Version
  33. .. image:: https://codecov.io/github/pyca/pynacl/coverage.svg?branch=main
  34. :target: https://codecov.io/github/pyca/pynacl?branch=main
  35. .. image:: https://img.shields.io/pypi/pyversions/pynacl.svg
  36. :target: https://pypi.org/project/PyNaCl/
  37. :alt: Compatible Python Versions
  38. PyNaCl is a Python binding to `libsodium`_, which is a fork of the
  39. `Networking and Cryptography library`_. These libraries have a stated goal of
  40. improving usability, security and speed. It supports Python 3.6+ as well as
  41. PyPy 3.
  42. .. _libsodium: https://github.com/jedisct1/libsodium
  43. .. _Networking and Cryptography library: https://nacl.cr.yp.to/
  44. Features
  45. --------
  46. * Digital signatures
  47. * Secret-key encryption
  48. * Public-key encryption
  49. * Hashing and message authentication
  50. * Password based key derivation and password hashing
  51. `Changelog`_
  52. ------------
  53. .. _Changelog: https://pynacl.readthedocs.io/en/stable/changelog/
  54. Installation
  55. ============
  56. Binary wheel install
  57. --------------------
  58. PyNaCl ships as a binary wheel on macOS, Windows and Linux ``manylinux1`` [#many]_ ,
  59. so all dependencies are included. Make sure you have an up-to-date pip
  60. and run:
  61. .. code-block:: console
  62. $ pip install pynacl
  63. Faster wheel build
  64. ------------------
  65. You can define the environment variable ``LIBSODIUM_MAKE_ARGS`` to pass arguments to ``make``
  66. and enable `parallelization`_:
  67. .. code-block:: console
  68. $ LIBSODIUM_MAKE_ARGS=-j4 pip install pynacl
  69. Linux source build
  70. ------------------
  71. PyNaCl relies on `libsodium`_, a portable C library. A copy is bundled
  72. with PyNaCl so to install you can run:
  73. .. code-block:: console
  74. $ pip install pynacl
  75. If you'd prefer to use the version of ``libsodium`` provided by your
  76. distribution, you can disable the bundled copy during install by running:
  77. .. code-block:: console
  78. $ SODIUM_INSTALL=system pip install pynacl
  79. .. warning:: Usage of the legacy ``easy_install`` command provided by setuptools
  80. is generally discouraged, and is completely unsupported in PyNaCl's case.
  81. .. _parallelization: https://www.gnu.org/software/make/manual/html_node/Parallel.html
  82. .. _libsodium: https://github.com/jedisct1/libsodium
  83. .. [#many] `manylinux1 wheels <https://www.python.org/dev/peps/pep-0513/>`_
  84. are built on a baseline linux environment based on Centos 5.11
  85. and should work on most x86 and x86_64 glibc based linux environments.
  86. Changelog
  87. =========
  88. 1.5.0 (2022-01-07)
  89. ------------------
  90. * **BACKWARDS INCOMPATIBLE:** Removed support for Python 2.7 and Python 3.5.
  91. * **BACKWARDS INCOMPATIBLE:** We no longer distribute ``manylinux1``
  92. wheels.
  93. * Added ``manylinux2014``, ``manylinux_2_24``, ``musllinux``, and macOS
  94. ``universal2`` wheels (the latter supports macOS ``arm64``).
  95. * Update ``libsodium`` to 1.0.18-stable (July 25, 2021 release).
  96. * Add inline type hints.
  97. 1.4.0 (2020-05-25)
  98. ------------------
  99. * Update ``libsodium`` to 1.0.18.
  100. * **BACKWARDS INCOMPATIBLE:** We no longer distribute 32-bit ``manylinux1``
  101. wheels. Continuing to produce them was a maintenance burden.
  102. * Added support for Python 3.8, and removed support for Python 3.4.
  103. * Add low level bindings for extracting the seed and the public key
  104. from crypto_sign_ed25519 secret key
  105. * Add low level bindings for deterministic random generation.
  106. * Add ``wheel`` and ``setuptools`` setup_requirements in ``setup.py`` (#485)
  107. * Fix checks on very slow builders (#481, #495)
  108. * Add low-level bindings to ed25519 arithmetic functions
  109. * Update low-level blake2b state implementation
  110. * Fix wrong short-input behavior of SealedBox.decrypt() (#517)
  111. * Raise CryptPrefixError exception instead of InvalidkeyError when trying
  112. to check a password against a verifier stored in a unknown format (#519)
  113. * Add support for minimal builds of libsodium. Trying to call functions
  114. not available in a minimal build will raise an UnavailableError
  115. exception. To compile a minimal build of the bundled libsodium, set
  116. the SODIUM_INSTALL_MINIMAL environment variable to any non-empty
  117. string (e.g. ``SODIUM_INSTALL_MINIMAL=1``) for setup.
  118. 1.3.0 2018-09-26
  119. ----------------
  120. * Added support for Python 3.7.
  121. * Update ``libsodium`` to 1.0.16.
  122. * Run and test all code examples in PyNaCl docs through sphinx's
  123. doctest builder.
  124. * Add low-level bindings for chacha20-poly1305 AEAD constructions.
  125. * Add low-level bindings for the chacha20-poly1305 secretstream constructions.
  126. * Add low-level bindings for ed25519ph pre-hashed signing construction.
  127. * Add low-level bindings for constant-time increment and addition
  128. on fixed-precision big integers represented as little-endian
  129. byte sequences.
  130. * Add low-level bindings for the ISO/IEC 7816-4 compatible padding API.
  131. * Add low-level bindings for libsodium's crypto_kx... key exchange
  132. construction.
  133. * Set hypothesis deadline to None in tests/test_pwhash.py to avoid
  134. incorrect test failures on slower processor architectures. GitHub
  135. issue #370
  136. 1.2.1 - 2017-12-04
  137. ------------------
  138. * Update hypothesis minimum allowed version.
  139. * Infrastructure: add proper configuration for readthedocs builder
  140. runtime environment.
  141. 1.2.0 - 2017-11-01
  142. ------------------
  143. * Update ``libsodium`` to 1.0.15.
  144. * Infrastructure: add jenkins support for automatic build of
  145. ``manylinux1`` binary wheels
  146. * Added support for ``SealedBox`` construction.
  147. * Added support for ``argon2i`` and ``argon2id`` password hashing constructs
  148. and restructured high-level password hashing implementation to expose
  149. the same interface for all hashers.
  150. * Added support for 128 bit ``siphashx24`` variant of ``siphash24``.
  151. * Added support for ``from_seed`` APIs for X25519 keypair generation.
  152. * Dropped support for Python 3.3.
  153. 1.1.2 - 2017-03-31
  154. ------------------
  155. * reorder link time library search path when using bundled
  156. libsodium
  157. 1.1.1 - 2017-03-15
  158. ------------------
  159. * Fixed a circular import bug in ``nacl.utils``.
  160. 1.1.0 - 2017-03-14
  161. ------------------
  162. * Dropped support for Python 2.6.
  163. * Added ``shared_key()`` method on ``Box``.
  164. * You can now pass ``None`` to ``nonce`` when encrypting with ``Box`` or
  165. ``SecretBox`` and it will automatically generate a random nonce.
  166. * Added support for ``siphash24``.
  167. * Added support for ``blake2b``.
  168. * Added support for ``scrypt``.
  169. * Update ``libsodium`` to 1.0.11.
  170. * Default to the bundled ``libsodium`` when compiling.
  171. * All raised exceptions are defined mixing-in
  172. ``nacl.exceptions.CryptoError``
  173. 1.0.1 - 2016-01-24
  174. ------------------
  175. * Fix an issue with absolute paths that prevented the creation of wheels.
  176. 1.0 - 2016-01-23
  177. ----------------
  178. * PyNaCl has been ported to use the new APIs available in cffi 1.0+.
  179. Due to this change we no longer support PyPy releases older than 2.6.
  180. * Python 3.2 support has been dropped.
  181. * Functions to convert between Ed25519 and Curve25519 keys have been added.
  182. 0.3.0 - 2015-03-04
  183. ------------------
  184. * The low-level API (`nacl.c.*`) has been changed to match the
  185. upstream NaCl C/C++ conventions (as well as those of other NaCl bindings).
  186. The order of arguments and return values has changed significantly. To
  187. avoid silent failures, `nacl.c` has been removed, and replaced with
  188. `nacl.bindings` (with the new argument ordering). If you have code which
  189. calls these functions (e.g. `nacl.c.crypto_box_keypair()`), you must review
  190. the new docstrings and update your code/imports to match the new
  191. conventions.