PyCrypto - The Python Cryptography Toolkit

Random Number Generation

Do not use RandomPool to generate random numbers. It is deprecated and will be removed in a future release. See this thread to find out why.

Mailing list

If you are interested in the future of PyCrypto, please join the mailing list.

Bug tracker

Bugs are tracked on Launchpad.

Source Code

You can browse the source tree (gitweb), or clone it using git by running the following command:

git clone git://git.pycrypto.org:9419/crypto/pycrypto-2.x.git

See "Export Issues" and "Code Submission Requirements" below.

Atom/RSS feeds

You can keep track of the progress of PyCrypto development by subscribing to one of the Atom or RSS commit log feeds.

Releases

The latest stable release is available here:

It has the following SHA256 sums:

4f11e85fbcf13960373650fc2dae8f088f9b001f07fb6d3efb2fcb5334987182 *pycrypto-2.3.tar.gz
753637dc906b45a03b2562dc7f77ac63082ade80fe4be075e483daa4613a6d99 *pycrypto-2.3.tar.gz.asc

Note: There was an incorrectly-generated PyCrypto 2.3 tarball with an SHA256 sum starting with 495f68. If you received a copy of that tarball, download the new one again.

Documentation

Note: This documentation is somewhat outdated.

Development

Export Issues

Unfortunately, cryptography software is still governed by arms control regulations in Canada, the United States, and elsewhere. The controls are somewhat looser for free/open-source software, but they exist nonetheless. I am a Canadan citizen working in Canada, so Canadian export controls apply to me. Due to Canada's close ties to the U.S., cryptography software that is "made in the USA" is subject to different rules than software made anywhere else. From what I understand, I have to follow both U.S. and Canadian export regulations if I "re-export" U.S.-origin cryptography.

At the moment, the rules seem to be compatible with each other, and I have done my best to ensure that I am complying with both sets of regulations, but the whole thing makes me uncomfortable and I have neither the time nor the money to try to push the limits on this issue.

Therefore, I am not accepting new code contributions from U.S. nationals or U.S. residents at this time. The goal is to eventually make the American contribution so small that PyCrypto will no longer be substantially "of U.S. origin" (I think this is already the case, but I want to be careful).

Code Submission Requirements

In an effort to clarify PyCrypto's licensing terms and export control status, all new patch submissions must meet the requirements set out in the document, "PyCrypto Code Submission Requirements - Rev. C".