You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

147 lines
4.6 KiB

7 years ago
  1. ===============================================
  2. PyNaCl: Python binding to the libsodium library
  3. ===============================================
  4. .. image:: https://img.shields.io/pypi/v/pynacl.svg
  5. :target: https://pypi.python.org/pypi/PyNaCl/
  6. :alt: Latest Version
  7. .. image:: https://travis-ci.org/pyca/pynacl.svg?branch=master
  8. :target: https://travis-ci.org/pyca/pynacl
  9. .. image:: https://codecov.io/github/pyca/pynacl/coverage.svg?branch=master
  10. :target: https://codecov.io/github/pyca/pynacl?branch=master
  11. PyNaCl is a Python binding to `libsodium`_, which is a fork of the
  12. `Networking and Cryptography library`_. These libraries have a stated goal of
  13. improving usability, security and speed. It supports Python 2.7 and 3.4+ as
  14. well as PyPy 2.6+.
  15. .. _libsodium: https://github.com/jedisct1/libsodium
  16. .. _Networking and Cryptography library: https://nacl.cr.yp.to/
  17. Features
  18. --------
  19. * Digital signatures
  20. * Secret-key encryption
  21. * Public-key encryption
  22. * Hashing and message authentication
  23. * Password based key derivation and password hashing
  24. Installation
  25. ============
  26. Binary wheel install
  27. --------------------
  28. PyNaCl ships as a binary wheel on OS X, Windows and Linux ``manylinux1`` [#many]_ ,
  29. so all dependencies are included. Make sure you have an up-to-date pip
  30. and run:
  31. .. code-block:: console
  32. $ pip install pynacl
  33. Linux source build
  34. ------------------
  35. PyNaCl relies on `libsodium`_, a portable C library. A copy is bundled
  36. with PyNaCl so to install you can run:
  37. .. code-block:: console
  38. $ pip install pynacl
  39. If you'd prefer to use the version of ``libsodium`` provided by your
  40. distribution, you can disable the bundled copy during install by running:
  41. .. code-block:: console
  42. $ SODIUM_INSTALL=system pip install pynacl
  43. .. warning:: Usage of the legacy ``easy_install`` command provided by setuptools
  44. is generally discouraged, and is completely unsupported in PyNaCl's case.
  45. .. _libsodium: https://github.com/jedisct1/libsodium
  46. .. [#many] `manylinux1 wheels <https://www.python.org/dev/peps/pep-0513/>`_
  47. are built on a baseline linux environment based on Centos 5.11
  48. and should work on most x86 and x86_64 glibc based linux environments.
  49. Changelog
  50. =========
  51. 1.2.1 - 2017-12-04
  52. ------------------
  53. * Update hypothesis minumum allowed version.
  54. * Infrastructure: add proper configuration for readthedocs builder
  55. runtime environment.
  56. 1.2.0 - 2017-11-01
  57. ------------------
  58. * Update ``libsodium`` to 1.0.15.
  59. * Infrastructure: add jenkins support for automatic build of
  60. ``manylinux1`` binary wheels
  61. * Added support for ``SealedBox`` construction.
  62. * Added support for ``argon2i`` and ``argon2id`` password hashing constructs
  63. and restructured high-level password hashing implementation to expose
  64. the same interface for all hashers.
  65. * Added support for 128 bit ``siphashx24`` variant of ``siphash24``.
  66. * Added support for ``from_seed`` APIs for X25519 keypair generation.
  67. * Dropped support for Python 3.3.
  68. 1.1.2 - 2017-03-31
  69. ------------------
  70. * reorder link time library search path when using bundled
  71. libsodium
  72. 1.1.1 - 2017-03-15
  73. ------------------
  74. * Fixed a circular import bug in ``nacl.utils``.
  75. 1.1.0 - 2017-03-14
  76. ------------------
  77. * Dropped support for Python 2.6.
  78. * Added ``shared_key()`` method on ``Box``.
  79. * You can now pass ``None`` to ``nonce`` when encrypting with ``Box`` or
  80. ``SecretBox`` and it will automatically generate a random nonce.
  81. * Added support for ``siphash24``.
  82. * Added support for ``blake2b``.
  83. * Added support for ``scrypt``.
  84. * Update ``libsodium`` to 1.0.11.
  85. * Default to the bundled ``libsodium`` when compiling.
  86. * All raised exceptions are defined mixing-in
  87. ``nacl.exceptions.CryptoError``
  88. 1.0.1 - 2016-01-24
  89. ------------------
  90. * Fix an issue with absolute paths that prevented the creation of wheels.
  91. 1.0 - 2016-01-23
  92. ----------------
  93. * PyNaCl has been ported to use the new APIs available in cffi 1.0+.
  94. Due to this change we no longer support PyPy releases older than 2.6.
  95. * Python 3.2 support has been dropped.
  96. * Functions to convert between Ed25519 and Curve25519 keys have been added.
  97. 0.3.0 - 2015-03-04
  98. ------------------
  99. * The low-level API (`nacl.c.*`) has been changed to match the
  100. upstream NaCl C/C++ conventions (as well as those of other NaCl bindings).
  101. The order of arguments and return values has changed significantly. To
  102. avoid silent failures, `nacl.c` has been removed, and replaced with
  103. `nacl.bindings` (with the new argument ordering). If you have code which
  104. calls these functions (e.g. `nacl.c.crypto_box_keypair()`), you must review
  105. the new docstrings and update your code/imports to match the new
  106. conventions.

Powered by TurnKey Linux.