summaryrefslogtreecommitdiff
path: root/README.rst
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@cepl.eu>2015-10-19 14:30:05 +0200
committerMatěj Cepl <mcepl@cepl.eu>2015-11-02 14:34:22 +0100
commit10625197c29c1de5c9bd26361cbae12d8912a20d (patch)
tree4a607abcca79008cc458c18d9330383940eb7112 /README.rst
parentdaf41853d3312b3a7a10f148d78c933778c955cc (diff)
downloadm2crypto-10625197c29c1de5c9bd26361cbae12d8912a20d.tar.gz
Fix the biggest disasters in README.
Fixes #61
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst57
1 files changed, 57 insertions, 0 deletions
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..20bf31b
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,57 @@
+========= M2Crypto =========
+
+:Maintainer: Heikki Toivonen :Web-Site:
+https://gitlab.com/m2crypto/m2crypto
+
+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/TLS** functionality to implement **clients and servers**.
+
+- **Example SSL/TLS 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.