aboutsummaryrefslogtreecommitdiffstats
path: root/lang/python/examples/encrypt-to-all.py
diff options
context:
space:
mode:
authorJustus Winter <[email protected]>2016-05-10 11:19:26 +0000
committerJustus Winter <[email protected]>2016-05-10 11:19:26 +0000
commitf4ba16b31ea282d0787a40be3f37b951584143a1 (patch)
treeebb1ed1945dee5fc0e8e21ca62420a51924bbbad /lang/python/examples/encrypt-to-all.py
parentMerge branch 'master' into justus/pyme3 (diff)
downloadgpgme-f4ba16b31ea282d0787a40be3f37b951584143a1.tar.gz
gpgme-f4ba16b31ea282d0787a40be3f37b951584143a1.zip
python: Rename bindings.
-- Signed-off-by: Justus Winter <[email protected]>
Diffstat (limited to 'lang/python/examples/encrypt-to-all.py')
-rwxr-xr-xlang/python/examples/encrypt-to-all.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/lang/python/examples/encrypt-to-all.py b/lang/python/examples/encrypt-to-all.py
new file mode 100755
index 00000000..8f9d2500
--- /dev/null
+++ b/lang/python/examples/encrypt-to-all.py
@@ -0,0 +1,68 @@
+#!/usr/bin/env python3
+# $Id$
+# Copyright (C) 2008 Igor Belyi <[email protected]>
+# Copyright (C) 2002 John Goerzen <[email protected]>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+"""
+This program will try to encrypt a simple message to each key on your
+keyring. If your keyring has any invalid keys on it, those keys will
+be skipped and it will re-try the encryption."""
+
+from pyme import core
+from pyme.core import Data, Context
+from pyme.constants import validity
+
+core.check_version(None)
+
+plain = Data(b'This is my message.')
+
+c = Context()
+c.set_armor(1)
+
+def sendto(keylist):
+ cipher = Data()
+ c.op_encrypt(keylist, 1, plain, cipher)
+ cipher.seek(0,0)
+ return cipher.read()
+
+names = []
+for key in c.op_keylist_all(None, 0):
+ try:
+ print(" *** Found key for %s" % key.uids[0].uid)
+ valid = 0
+ for subkey in key.subkeys:
+ keyid = subkey.keyid
+ if keyid == None:
+ break
+ can_encrypt = subkey.can_encrypt
+ valid += can_encrypt
+ print(" Subkey %s: encryption %s" % \
+ (keyid, can_encrypt and "enabled" or "disabled"))
+ except UnicodeEncodeError as e:
+ print(e)
+
+ if valid:
+ names.append(key)
+ else:
+ print(" This key cannot be used for encryption; skipping.")
+
+passno = 0
+
+print("Encrypting to %d recipients" % len(names))
+print(sendto(names))
+
+