aboutsummaryrefslogtreecommitdiffstats
path: root/lang/python/pyme/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'lang/python/pyme/__init__.py')
-rw-r--r--lang/python/pyme/__init__.py137
1 files changed, 137 insertions, 0 deletions
diff --git a/lang/python/pyme/__init__.py b/lang/python/pyme/__init__.py
new file mode 100644
index 00000000..4934afe7
--- /dev/null
+++ b/lang/python/pyme/__init__.py
@@ -0,0 +1,137 @@
+# $Id$
+"""
+Pyme: GPGME Interface for Python
+Copyright (C) 2004 Igor Belyi <[email protected]>
+Copyright (C) 2002 John Goerzen <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Welcome to PyME, the GPGME Interface for Python. "Pyme", when prounced,
+rhymes with "Pine".
+
+The latest release of this package may be obtained from
+http://pyme.sourceforge.net
+Previous releases of this package can be obtained from
+http://quux.org/devel/pyme/
+
+FEATURES
+--------
+
+ * Feature-rich, full implementation of the GPGME library. Supports
+ all GPGME features except interactive editing (coming soon).
+ Callback functions may be written in pure Python.
+
+ * Ability to sign, encrypt, decrypt, and verify data.
+
+ * Ability to list keys, export and import keys, and manage the keyring.
+
+ * Fully object-oriented with convenient classes and modules.
+
+GENERAL OVERVIEW
+----------------
+
+For those of you familiar with GPGME, you will be right at home here.
+
+Pyme is, for the most part, a direct interface to the C GPGME
+library. However, it is re-packaged in a more Pythonic way --
+object-oriented with classes and modules. Take a look at the classes
+defined here -- they correspond directly to certain object types in GPGME
+for C. For instance, the following C code:
+
+gpgme_ctx_t context;
+
+gpgme_new(&context);
+
+...
+gpgme_op_encrypt(context, recp, 1, plain, cipher);
+
+Translates into the following Python code:
+
+context = core.Context()
+...
+context.op_encrypt(recp, 1, plain, cipher)
+
+The Python module automatically does error-checking and raises Python
+exception pyme.errors.GPGMEError when GPGME signals an error. getcode()
+and getsource() of this exception return code and source of the error.
+
+IMPORTANT NOTE
+--------------
+This documentation only covers a small subset of available GPGME functions and
+methods. Please consult the documentation for the C library
+for comprehensive coverage.
+
+This library uses Python's reflection to automatically detect the methods
+that are available for each class, and as such, most of those methods
+do not appear explicitly anywhere. You can use dir() python built-in command
+on an object to see what methods and fields it has but their meaning can
+be found only in GPGME documentation.
+
+QUICK START SAMPLE PROGRAM
+--------------------------
+This program is not for serious encryption, but for example purposes only!
+
+import sys
+from pyme import core, constants
+
+# Set up our input and output buffers.
+
+plain = core.Data('This is my message.')
+cipher = core.Data()
+
+# Initialize our context.
+
+c = core.Context()
+c.set_armor(1)
+
+# Set up the recipients.
+
+sys.stdout.write("Enter name of your recipient: ")
+name = sys.stdin.readline().strip()
+c.op_keylist_start(name, 0)
+r = c.op_keylist_next()
+
+# Do the encryption.
+
+c.op_encrypt([r], 1, plain, cipher)
+cipher.seek(0,0)
+print cipher.read()
+
+Note that although there is no explicit error checking done here, the
+Python GPGME library is automatically doing error-checking, and will
+raise an exception if there is any problem.
+
+This program is in the Pyme distribution as examples/simple.py. The examples
+directory contains more advanced samples as well.
+
+FOR MORE INFORMATION
+--------------------
+PYME homepage: http://pyme.sourceforge.net
+GPGME documentation: http://pyme.sourceforge.net/doc/gpgme/index.html
+GPGME homepage: http://www.gnupg.org/gpgme.html
+
+Base classes: pyme.core (START HERE!)
+Error classes: pyme.errors
+Constants: pyme.constants
+Version information: pyme.version
+Utilities: pyme.util
+
+Base classes are documented at pyme.core.
+Classes of pyme.util usually are not instantiated by users
+directly but return by methods of base classes.
+
+"""
+
+__all__ = ['core', 'errors', 'constants', 'util', 'callbacks', 'version']