| 1 | |
|---|
| 2 | |
|---|
| 3 | =========================================================== |
|---|
| 4 | pycryptopp: a small number of good cryptography algorithms |
|---|
| 5 | =========================================================== |
|---|
| 6 | |
|---|
| 7 | Introduction and Licence |
|---|
| 8 | ======================== |
|---|
| 9 | |
|---|
| 10 | Pycryptopp is a collection of Python interfaces to a few good crypto |
|---|
| 11 | algorithms. It lives at https://tahoe-lafs.org/trac/pycryptopp |
|---|
| 12 | |
|---|
| 13 | RECOMMENDED algorithms: |
|---|
| 14 | |
|---|
| 15 | • XSalsa20 ; from the Crypto++ library ; see pycryptopp.cipher.xsalsa20 |
|---|
| 16 | • Ed25519 ; from the supercop library ; see pycryptopp.publickey.ed25519 |
|---|
| 17 | |
|---|
| 18 | DEPRECATED algorithms: |
|---|
| 19 | |
|---|
| 20 | The maintainers of pycryptopp intend to stop supporting these soon. Please |
|---|
| 21 | migrate away from depending on pycryptopp's implementation of these |
|---|
| 22 | algorithms, or else write to us and offer some inducement to continue |
|---|
| 23 | supporting them. |
|---|
| 24 | |
|---|
| 25 | • RSA from the Crypto++ library ; see pycryptopp.publickey.rsa ; deprecated |
|---|
| 26 | in favor of Ed25519 |
|---|
| 27 | • Ecdsa from the Crypto++ library ; see pycryptopp.publickey.ecdsa ; |
|---|
| 28 | deprecated in favor of Ed25519 |
|---|
| 29 | • SHA-256 from the Crypto++ library ; see pycryptopp.hash.sha256 ; deprecated |
|---|
| 30 | in favor of the Python Standard Library's hashlib module |
|---|
| 31 | |
|---|
| 32 | LICENCE |
|---|
| 33 | ------- |
|---|
| 34 | |
|---|
| 35 | You may use this package under the GNU General Public License, version 2 or, |
|---|
| 36 | at your option, any later version. You may use this package under the |
|---|
| 37 | Transitive Grace Period Public Licence, version 1.0 or, at your option, any |
|---|
| 38 | later version. You may use this package under the MIT License. You may use |
|---|
| 39 | this package under the Simple Permissive Licence. |
|---|
| 40 | |
|---|
| 41 | (You may choose to use this package under the terms of any of these licences, |
|---|
| 42 | at your option.) |
|---|
| 43 | |
|---|
| 44 | See the file COPYING.GPL for the terms of the GNU General Public License, |
|---|
| 45 | version 2. See the file COPYING.TGPPL.rst for the terms of the Transitive |
|---|
| 46 | Grace Period Public Licence, version 1.0. See the file COPYING.MIT.txt for |
|---|
| 47 | the terms of the MIT License. See the file COPYING.SPL.txt for the terms of |
|---|
| 48 | the Simple Permissive Licence. |
|---|
| 49 | |
|---|
| 50 | BUILDING |
|---|
| 51 | -------- |
|---|
| 52 | |
|---|
| 53 | To build it run "python setup.py build". To test it run "python setup.py |
|---|
| 54 | test". To install it into your system run "python setup.py install". To |
|---|
| 55 | create a binary package run "python setup.py bdist_egg". |
|---|
| 56 | |
|---|
| 57 | If "python setup.py test" doesn't print out "PASSED" and exit with exit |
|---|
| 58 | code 0 then there is something seriously wrong. Do not use this build of |
|---|
| 59 | pycryptopp. Please report the error to the tahoe-dev mailing list ²_. |
|---|
| 60 | |
|---|
| 61 | To see some simple benchmarks run "python setup.py bench". If the "pyutil" |
|---|
| 62 | library is installed then the benchmarks will include mean, best, worst, and |
|---|
| 63 | quartiles of wall-clock time, else they will just report the mean wall-clock |
|---|
| 64 | time per operation. |
|---|
| 65 | |
|---|
| 66 | DOCUMENTATION |
|---|
| 67 | ------------- |
|---|
| 68 | |
|---|
| 69 | The documentation is in the docstrings. From a command-line, use "pydoc |
|---|
| 70 | pycryptopp", "pydoc pycryptopp.cipher", and so on. From within a Python |
|---|
| 71 | interpreter use "help(pycryptopp)", "help(pycryptopp.cipher)", |
|---|
| 72 | "help(pycryptopp.cipher.aes)" and so on. |
|---|
| 73 | |
|---|
| 74 | The documentation for pycryptopp.publickey.ed25519 is in README.ed25519.rst, |
|---|
| 75 | adapted from the upstream python-ed25519 library. |
|---|
| 76 | |
|---|
| 77 | CONTACT |
|---|
| 78 | ------- |
|---|
| 79 | |
|---|
| 80 | Please post to the tahoe-dev mailing list ²_ with comments about this |
|---|
| 81 | package. |
|---|
| 82 | |
|---|
| 83 | BOOK REVIEW |
|---|
| 84 | ----------- |
|---|
| 85 | |
|---|
| 86 | If you are not already acquainted with how to use modern cryptography, read |
|---|
| 87 | Ferguson, Schneier, and Kohno “Cryptography Engineering”. It is easy going |
|---|
| 88 | and will increase your understanding greatly. |
|---|
| 89 | |
|---|
| 90 | ACKNOWLEDGEMENTS |
|---|
| 91 | ---------------- |
|---|
| 92 | |
|---|
| 93 | Thanks to Wei Dai, Jeffrey Walton, and the other contributors to |
|---|
| 94 | Crypto++, Andrew M. Kuchling for his "pycrypto" library which inspired |
|---|
| 95 | this one, Brian Warner for help on Python packaging questions, |
|---|
| 96 | python-Ed25519, inspiration, and a million other things besides, Greg |
|---|
| 97 | Hazel and Samuel Neves for Windows porting and fixing bugs, Daira |
|---|
| 98 | Hopwood for helping maintain pycryptopp, and Daniel J. Bernstein for |
|---|
| 99 | Ed25519. |
|---|
| 100 | |
|---|
| 101 | |
|---|
| 102 | Zooko Wilcox |
|---|
| 103 | |
|---|
| 104 | Berlin, Germany |
|---|
| 105 | |
|---|
| 106 | 2016-01-03 |
|---|
| 107 | |
|---|
| 108 | |
|---|
| 109 | .. _¹: https://github.com/warner/python-ed25519 |
|---|
| 110 | .. _²: https://tahoe-lafs.org/cgi-bin/mailman/listinfo/tahoe-dev |
|---|