Skip to content

ajmirsky/M2Crypto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6716164 · Dec 2, 2011
Jan 13, 2011
Dec 2, 2011
Mar 20, 2006
Feb 9, 2009
Oct 29, 2008
Feb 13, 2010
Dec 2, 2011
Jan 15, 2011
Jul 24, 2009
Feb 13, 2010
Oct 6, 2008
Aug 7, 2009
Feb 9, 2009
Jun 22, 2003
Jan 13, 2011
Jan 13, 2011

Repository files navigation

=========
 M2Crypto
=========

:Maintainer: Heikki Toivonen
:Web-Site: http://chandlerproject.org/Projects/MeTooCrypto


M2Crypto = Python + OpenSSL + SWIG
------------------------------------

M2Crypto is a crypto and SSL toolkit for Python.

M2 stands for "me, too!"

M2Crypto comes with the following:

- **RSA**, **DSA**, **DH**, **HMACs**, **message digests**,
  **symmetric ciphers** including **AES**,

- **SSL** functionality to implement **clients and servers**.

- **Example SSL client and server programs**, which are variously
  **threading**, **forking** or based on **non-blocking socket IO**.

- **HTTPS** extensions to Python's **httplib, urllib and xmlrpclib**.

- Unforgeable HMAC'ing **AuthCookies** for **web session management**.

- **FTP/TLS** client and server.

- **S/MIME v2**.

- **ZServerSSL**: A **HTTPS server for Zope**.

- **ZSmime**: An S/MIME messenger for **Zope**.

- And much more.

M2Crypto is released under a very liberal BSD-style licence. See 
LICENCE for details.

To install, see the file INSTALL.

Look at the tests and demos for example use. Recommended reading before
deploying in production is "Network Security with OpenSSL" by John Viega,
Matt Messier and Pravir Chandra, ISBN 059600270X.

Note these caveats:

- Possible memory leaks, because some objects need to be freed on the
  Python side and other objects on the C side, and these may change
  between OpenSSL versions. (Multiple free's lead to crashes very
  quickly, so these should be relatively rare.)
    
- No memory locking/clearing for keys, passphrases, etc. because AFAIK
  Python does not provide the features needed. On the C (OpenSSL) side
  things are cleared when the Python objects are deleted.
    

Have fun! Your feedback is welcome.

Releases

No releases published

Packages

No packages published

Languages