[git] GPGME - branch, master, updated. gpgme-1.11.1-50-ga3a0858

by Ben McGinnes cvs at cvs.gnupg.org
Thu Jun 7 07:11:44 CEST 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GnuPG Made Easy".

The branch, master has been updated
       via  a3a08584d6e57c4b2a40d74dc52a7d8c5c11b501 (commit)
      from  2c4c5692472f5870f907c2c3f01870879cb0c34b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit a3a08584d6e57c4b2a40d74dc52a7d8c5c11b501
Author: Ben McGinnes <ben at adversary.org>
Date:   Thu Jun 7 15:06:20 2018 +1000

    examples: python howto
    
    * Uses the groups module to prepare a list of recipients and encrypt
      to those.
    * The main version (encrypt-to-group.py) tries to check for invalid
      recipients, but still falls back to always trust for the second
      encryption attempt.
    * The gullible version doesn't try pruning the recipient list at all,
      it just tries to encrypt and if it fails, switches straight to
      always trust.
    * The trustno1 version doesn't use the always trust model at all and
      only attempts pruning the list of invalid recipients.

diff --git a/lang/python/examples/howto/encrypt-to-group-gullible.py b/lang/python/examples/howto/encrypt-to-group-gullible.py
new file mode 100755
index 0000000..7ebfb6b
--- /dev/null
+++ b/lang/python/examples/howto/encrypt-to-group-gullible.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+from __future__ import absolute_import, division, unicode_literals
+
+# Copyright (C) 2018 Ben McGinnes <ben at gnupg.org>
+#
+# 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 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 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 and the GNU
+# Lesser General Public Licensefor more details.
+#
+# You should have received a copy of the GNU General Public License and the GNU
+# Lesser General Public along with this program; if not, see
+# <http://www.gnu.org/licenses/>.
+
+import gpg
+import sys
+from groups import group_lists
+
+"""
+Uses the groups module to encrypt to multiple recipients.
+
+"""
+
+c = gpg.Context(armor=True)
+
+if len(sys.argv) > 3:
+    group_id = sys.argv[1]
+    filepath = sys.argv[2:]
+elif len(sys.argv) == 3:
+    group_id = sys.argv[1]
+    filepath = sys.argv[2]
+elif len(sys.argv) == 2:
+    group_id = sys.argv[1]
+    filepath = input("Enter the filename to encrypt: ")
+else:
+    group_id = input("Enter the group name to encrypt to: ")
+    filepath = input("Enter the filename to encrypt: ")
+
+with open(filepath, "rb") as f:
+    text = f.read()
+
+for i in range(len(group_lists)):
+    if group_lists[i][0] == group_id:
+        klist = group_lists[i][1]
+    else:
+        klist = None
+
+logrus = []
+
+if klist is not None:
+    for i in range(len(klist)):
+        apattern = list(c.keylist(pattern=klist[i], secret=False))
+        if apattern[0].can_encrypt == 1:
+            logrus.append(apattern[0])
+        else:
+            pass
+    try:
+        ciphertext, result, sign_result = c.encrypt(text, recipients=logrus,
+                                                    add_encrypt_to=True)
+    except:
+        ciphertext, result, sign_result = c.encrypt(text, recipients=logrus,
+                                                    add_encrypt_to=True,
+                                                    always_trust=True)
+    with open("{0}.asc".format(filepath), "wb") as f:
+              f.write(ciphertext)
+else:
+    pass
+
+# EOF
diff --git a/lang/python/examples/howto/encrypt-to-group-trustno1.py b/lang/python/examples/howto/encrypt-to-group-trustno1.py
new file mode 100755
index 0000000..736c5f1
--- /dev/null
+++ b/lang/python/examples/howto/encrypt-to-group-trustno1.py
@@ -0,0 +1,90 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+from __future__ import absolute_import, division, unicode_literals
+
+# Copyright (C) 2018 Ben McGinnes <ben at gnupg.org>
+#
+# 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 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 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 and the GNU
+# Lesser General Public Licensefor more details.
+#
+# You should have received a copy of the GNU General Public License and the GNU
+# Lesser General Public along with this program; if not, see
+# <http://www.gnu.org/licenses/>.
+
+import gpg
+import sys
+from groups import group_lists
+
+"""
+Uses the groups module to encrypt to multiple recipients.
+
+"""
+
+c = gpg.Context(armor=True)
+
+if len(sys.argv) > 3:
+    group_id = sys.argv[1]
+    filepath = sys.argv[2:]
+elif len(sys.argv) == 3:
+    group_id = sys.argv[1]
+    filepath = sys.argv[2]
+elif len(sys.argv) == 2:
+    group_id = sys.argv[1]
+    filepath = input("Enter the filename to encrypt: ")
+else:
+    group_id = input("Enter the group name to encrypt to: ")
+    filepath = input("Enter the filename to encrypt: ")
+
+with open(filepath, "rb") as f:
+    text = f.read()
+
+for i in range(len(group_lists)):
+    if group_lists[i][0] == group_id:
+        klist = group_lists[i][1]
+    else:
+        klist = None
+
+logrus = []
+
+if klist is not None:
+    for i in range(len(klist)):
+        apattern = list(c.keylist(pattern=klist[i], secret=False))
+        if apattern[0].can_encrypt == 1:
+            logrus.append(apattern[0])
+        else:
+            pass
+    try:
+        ciphertext, result, sign_result = c.encrypt(text, recipients=logrus,
+                                                    add_encrypt_to=True)
+    except gpg.errors.InvalidRecipients as e:
+        for i in range(len(e.recipients)):
+            for n in range(len(logrus)):
+                if logrus[n].fpr == e.recipients[i].fpr:
+                    logrus.remove(logrus[n])
+                else:
+                    pass
+        try:
+            ciphertext, result, sign_result = c.encrypt(text,
+                                                        recipients=logrus,
+                                                        add_encrypt_to=True)
+        except:
+            pass
+    with open("{0}.asc".format(filepath), "wb") as f:
+              f.write(ciphertext)
+else:
+    pass
+
+# EOF
diff --git a/lang/python/examples/howto/encrypt-to-group.py b/lang/python/examples/howto/encrypt-to-group.py
new file mode 100755
index 0000000..84f8d10
--- /dev/null
+++ b/lang/python/examples/howto/encrypt-to-group.py
@@ -0,0 +1,91 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+from __future__ import absolute_import, division, unicode_literals
+
+# Copyright (C) 2018 Ben McGinnes <ben at gnupg.org>
+#
+# 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 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 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 and the GNU
+# Lesser General Public Licensefor more details.
+#
+# You should have received a copy of the GNU General Public License and the GNU
+# Lesser General Public along with this program; if not, see
+# <http://www.gnu.org/licenses/>.
+
+import gpg
+import sys
+from groups import group_lists
+
+"""
+Uses the groups module to encrypt to multiple recipients.
+
+"""
+
+c = gpg.Context(armor=True)
+
+if len(sys.argv) > 3:
+    group_id = sys.argv[1]
+    filepath = sys.argv[2:]
+elif len(sys.argv) == 3:
+    group_id = sys.argv[1]
+    filepath = sys.argv[2]
+elif len(sys.argv) == 2:
+    group_id = sys.argv[1]
+    filepath = input("Enter the filename to encrypt: ")
+else:
+    group_id = input("Enter the group name to encrypt to: ")
+    filepath = input("Enter the filename to encrypt: ")
+
+with open(filepath, "rb") as f:
+    text = f.read()
+
+for i in range(len(group_lists)):
+    if group_lists[i][0] == group_id:
+        klist = group_lists[i][1]
+    else:
+        klist = None
+
+logrus = []
+
+if klist is not None:
+    for i in range(len(klist)):
+        apattern = list(c.keylist(pattern=klist[i], secret=False))
+        if apattern[0].can_encrypt == 1:
+            logrus.append(apattern[0])
+        else:
+            pass
+    try:
+        ciphertext, result, sign_result = c.encrypt(text, recipients=logrus,
+                                                    add_encrypt_to=True)
+    except gpg.errors.InvalidRecipients as e:
+        for i in range(len(e.recipients)):
+            for n in range(len(logrus)):
+                if logrus[n].fpr == e.recipients[i].fpr:
+                    logrus.remove(logrus[n])
+                else:
+                    pass
+        try:
+            ciphertext, result, sign_result = c.encrypt(text,
+                                                        recipients=logrus,
+                                                        add_encrypt_to=True,
+                                                        always_trust=True)
+        except:
+            pass
+    with open("{0}.asc".format(filepath), "wb") as f:
+              f.write(ciphertext)
+else:
+    pass
+
+# EOF

-----------------------------------------------------------------------

Summary of changes:
 .../examples/howto/encrypt-to-group-gullible.py    | 81 +++++++++++++++++++
 .../examples/howto/encrypt-to-group-trustno1.py    | 90 +++++++++++++++++++++
 lang/python/examples/howto/encrypt-to-group.py     | 91 ++++++++++++++++++++++
 3 files changed, 262 insertions(+)
 create mode 100755 lang/python/examples/howto/encrypt-to-group-gullible.py
 create mode 100755 lang/python/examples/howto/encrypt-to-group-trustno1.py
 create mode 100755 lang/python/examples/howto/encrypt-to-group.py


hooks/post-receive
-- 
GnuPG Made Easy
http://git.gnupg.org




More information about the Gnupg-commits mailing list