Metadata-Version: 2.4
Name: M2Crypto
Version: 0.46.2
Summary: A Python crypto and SSL toolkit
Author: Ng Pheng Siong
Author-email: ngps@sandbox.rulemaker.net
Maintainer: Matej Cepl
Maintainer-email: mcepl@cepl.eu
License: BSD-2-Clause
Project-URL: home_page, https://sr.ht/~mcepl/m2crypto/
Project-URL: source, https://git.sr.ht/~mcepl/m2crypto
Project-URL: documentation, https://m2crypto.readthedocs.io/en/latest/
Project-URL: report, https://lists.sr.ht/~mcepl/m2crypto
Project-URL: changelog, https://git.sr.ht/~mcepl/m2crypto/tree/master/item/CHANGES
Keywords: cryptography,openssl
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: C
Classifier: Programming Language :: Python
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
License-File: LICENSES/BSD-2-Clause.txt
Dynamic: license-file

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

:Maintainer: Matěj Cepl
:Web-Site: https://sr.ht/~mcepl/m2crypto/
:Documentation: https://m2crypto.readthedocs.io/
:IRC channel: irc://irc.ergo.chat/#m2crypto
:Email list: https://lists.sr.ht/~mcepl/m2crypto (`subscribe via email`_)
:Issue tracker: https://todo.sr.ht/~mcepl/m2crypto (R/O, please
                report issues via the email list).

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

.. image:: https://builds.sr.ht/~mcepl.svg
   :target: https://builds.sr.ht/~mcepl?
   :alt: builds.sr.ht status

**NOTE: This library is currently in maintenance mode. We
recommend using a more modern alternative such as**
`PyCA/cryptography`_. **Examples of how to migrate can be found
in** `the documentation`_.

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**,

- **TLS** 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**.

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

We care a lot about stable API and all Python methods should be
preserved, note however that ``m2.`` namespace is considered internal to
the library and it doesn't have to be preserved. If however some change
to it breaks your app, let us know and we will try to make things
working for you.

- And much more.

M2Crypto is released under a very liberal BSD-2-Clause licence. See
LICENSES/BSD-2-Clause.txt 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.

.. _`subscribe via email`:
   mailto:~mcepl/m2crypto+subscribe@lists.sr.ht

.. _`PyCA/cryptography`:
   https://cryptography.io/en/latest/

.. _`the documentation`:
   https://m2crypto.readthedocs.io/en/latest/howto.migration.html
