Python bindings to the Crypto++ library
C++ Python Assembly C Other
Failed to load latest commit information.
misc suppress bogus errors on luther sid with some other random number app… Jul 12, 2012
pycryptopp.egg-info setup: mv stdeb.cfg into pycryptopp.egg-info and add a section label Jun 19, 2009
src-cryptopp move embeddedcryptopp/ to src-cryptopp/ Mar 11, 2012
src-ed25519 fix from Samuel Neves to not require C99 features (Microsoft doesn't … Feb 22, 2012
src/pycryptopp add licence options: MIT or SPL for the whole package Aug 12, 2012
.gitattributes Use versioneer-0.7 to make a version string from git metadata, when p… Feb 9, 2012
.gitignore don't run versioneer at runtime Mar 13, 2012
.travis.yml
COPYING.GPL add licence options: MIT or SPL for the whole package Aug 12, 2012
COPYING.MIT.txt add licence options: MIT or SPL for the whole package Aug 12, 2012
COPYING.SPL.txt add licence options: MIT or SPL for the whole package Aug 12, 2012
COPYING.TGPPL.rst add licence options: MIT or SPL for the whole package Aug 12, 2012
MANIFEST.in register in MANIFEST.in that a file was renamed Aug 12, 2012
NEWS.rst NEWS entry for 0.7.1 Feb 3, 2016
README.ed25519.rst add licence options: MIT or SPL for the whole package Aug 12, 2012
README.rst update metadata for 0.7.0 release Jan 26, 2016
_doubleloadtester.cpp move embeddedcryptopp/ to src-cryptopp/ Mar 11, 2012
copyright add licence options: MIT or SPL for the whole package Aug 12, 2012
setup.cfg unconditionally do the update-version behavior every time setup.py is… Mar 13, 2012
setup.py update metadata for 0.7.0 release Jan 26, 2016
versioneer.py

README.rst

pycryptopp: a small number of good cryptography algorithms

Introduction and Licence

Pycryptopp is a collection of Python interfaces to a few good crypto algorithms. It lives at https://tahoe-lafs.org/trac/pycryptopp

RECOMMENDED algorithms:

  • XSalsa20 ; from the Crypto++ library ; see pycryptopp.cipher.xsalsa20
  • Ed25519 ; from the supercop library ; see pycryptopp.publickey.ed25519

DEPRECATED algorithms:

The maintainers of pycryptopp intend to stop supporting these soon. Please migrate away from depending on pycryptopp's implementation of these algorithms, or else write to us and offer some inducement to continue supporting them.

  • RSA from the Crypto++ library ; see pycryptopp.publickey.rsa ; deprecated in favor of Ed25519
  • Ecdsa from the Crypto++ library ; see pycryptopp.publickey.ecdsa ; deprecated in favor of Ed25519
  • SHA-256 from the Crypto++ library ; see pycryptopp.hash.sha256 ; deprecated in favor of the Python Standard Library's hashlib module

LICENCE

You may use this package under the GNU General Public License, version 2 or, at your option, any later version. You may use this package under the Transitive Grace Period Public Licence, version 1.0 or, at your option, any later version. You may use this package under the MIT License. You may use this package under the Simple Permissive Licence.

(You may choose to use this package under the terms of any of these licences, at your option.)

See the file COPYING.GPL for the terms of the GNU General Public License, version 2. See the file COPYING.TGPPL.rst for the terms of the Transitive Grace Period Public Licence, version 1.0. See the file COPYING.MIT.txt for the terms of the MIT License. See the file COPYING.SPL.txt for the terms of the Simple Permissive Licence.

BUILDING

To build it run "python setup.py build". To test it run "python setup.py test". To install it into your system run "python setup.py install". To create a binary package run "python setup.py bdist_egg".

If "python setup.py test" doesn't print out "PASSED" and exit with exit code 0 then there is something seriously wrong. Do not use this build of pycryptopp. Please report the error to the tahoe-dev mailing list ².

To see some simple benchmarks run "python setup.py bench". If the "pyutil" library is installed then the benchmarks will include mean, best, worst, and quartiles of wall-clock time, else they will just report the mean wall-clock time per operation.

DOCUMENTATION

The documentation is in the docstrings. From a command-line, use "pydoc pycryptopp", "pydoc pycryptopp.cipher", and so on. From within a Python interpreter use "help(pycryptopp)", "help(pycryptopp.cipher)", "help(pycryptopp.cipher.aes)" and so on.

The documentation for pycryptopp.publickey.ed25519 is in README.ed25519.rst, adapted from the upstream python-ed25519 library.

CONTACT

Please post to the tahoe-dev mailing list ² with comments about this package.

BOOK REVIEW

If you are not already acquainted with how to use modern cryptography, read Ferguson, Schneier, and Kohno “Cryptography Engineering”. It is easy going and will increase your understanding greatly.

ACKNOWLEDGEMENTS

Thanks to Wei Dai, Jeffrey Walton, and the other contributors to Crypto++, Andrew M. Kuchling for his "pycrypto" library which inspired this one, Brian Warner for help on Python packaging questions, python-Ed25519, inspiration, and a million other things besides, Greg Hazel and Samuel Neves for Windows porting and fixing bugs, Daira Hopwood for helping maintain pycryptopp, and Daniel J. Bernstein for Ed25519.

Zooko Wilcox

Berlin, Germany

2016-01-03