|
|
|
|
These Packages Declared Obsolete
The packages on this page are no longer maintained. Most
significantly, I no longer recommend using the Python cryptography
modules available here. They were among my first Python projects, and
there are many things I'd do differently today, but I lack the time to
fix them.
Instead, I recommend using Marc-André Lemburg's mxCrypto
package for basic ciphers, for the following reasons:
- The Python cryptography modules include their own implementations
of various algorithms; mxCrypto sits on top of OpenSSL, which has better optimized
code. You'll also benefit from a larger user population, and a
greater degree of auditing of the code.
- mxCrypto can eventually provide interfaces to RSA that are
actually useful. My public-key code, while amusing to write and play
with, never provided PKCS encoding and was never more than a
toy.
- Marc-André is maintaining mxCrypto, and you can actually
purchase support from him if you need it. I have lots of e-mails
about bugs that I've never gotten around to looking at, much less
fixing.
For SSL support, look at M2Crypto.
You can still download my code, if you really need it, but I really don't recommend using it in any new projects.
|
As of January 14, 2000, the US export control regulations have been
relaxed for source code. Export controls still apply to binary
software, though; if you're an American citizen, please consult the
informative links at the Encryption
Policy Resource Pages and the
Electronic Frontier Foundation, and write a brief letter to your
legislators expressing your annoyance.
You can see everything
I've made available, or select one of the individual links below.
The package was divided into export-controlled and exportable
components; you'll have to download both components for a complete system.
- pycrypt-1.1a2-export.tgz:
Contains hashing algorithms, chaffing/winnowing, random number
generation, and various utility modules.
(You must get this component.)
- pycrypt-1.1a2-us.tgz:
Contains block encryption algorithms, RSA, and ElGamal.
Download the exportable subset first and untar it, and then download
and untar this archive.
- I once wrote an SSLeay interface for SSLeay 0.6.x, which
is quite old and outdated now. It didn't have wrapper code for all of
SSLeay's features, since the extension module was written by hand.
Use mxCrypto,
instead. The pyssl
package is still available, but not recommended.
- Python
code to read/write PGP-format messages; it's only alpha-quality
code. A more recent version of this code is included in the
export-controlled subset of the 1.1 alpha releases of my cryptography
modules; you'd be better off downloading that instead.
I'd recommend against using this module, unless you're willing
to bring it up to date. When that code was written, PGP 2.6.3 was
the current version. Since then, the OpenPGP RFC has been written,
changing the format in various ways, PGP is now up to version 6, and
GNU
Privacy Guard is also available. The PyPGP code would need to be
updated to match the current format, which wouldn't be difficult, but
debugging it would probably be rather tedious and lengthy. (I speak
from experience gained while implementing that alpha code. A lot of
time was spent stepping through PGP's code to find out why it was
reporting an error on my code's output; eventually you find that
you've forgetten a byte or put things in the wrong order or something
similarly trivial, you fix it, and then start stepping through the
code again, looking for the next bug.)
If you want to do PGP-compatible encryption, I'd recommend seeing
if you can just spawn a separate PGP or GnuPG process to do your
encryption. With GnuPG, if you don't need to use RSA and can live
with Diffie-Hellman as the only algorithm, then you wouldn't even have
to buy anything or license the RSA patent.
- ufcrypt.tgz, a Python interface to
Michael Glad's Ultra-Fast crypt(). Ultra-Fast crypt() is optimized
for cases where many passwords will be processed using the same salt
value; it's designed for writing password-cracking programs.
Other links of interest
|