[gnome-keysign: 2/16] Add import signature function



commit aee2eedad4972873002034bf512fce384e375cc6
Author: RyuzakiKK <aasonykk gmail com>
Date:   Wed Nov 14 16:23:18 2018 +0100

    Add import signature function

 keysign/gpgmeh.py | 11 +++++++++++
 keysign/send.py   |  5 +++++
 2 files changed, 16 insertions(+)
---
diff --git a/keysign/gpgmeh.py b/keysign/gpgmeh.py
index 904dd01..a15a0e4 100755
--- a/keysign/gpgmeh.py
+++ b/keysign/gpgmeh.py
@@ -471,3 +471,14 @@ def sign_keydata_and_encrypt(keydata, error_cb=None, homedir=None):
                                                always_trust=True,
                                                sign=False)
                 yield (UID.from_gpgme(uid), ciphertext)
+
+
+def import_signature(filename, homedir=None):
+    # ctx = gpg.Context()
+    ctx = DirectoryContext(homedir)
+    with open(filename, "rb") as fh:
+        decrypted = ctx.decrypt(fh)
+    ctx.op_import(decrypted[0])
+    result = ctx.op_import_result()
+    if len(result.imports) < 0:
+        raise gpg.errors.GPGMEError
diff --git a/keysign/send.py b/keysign/send.py
index 36c045c..036d7d4 100644
--- a/keysign/send.py
+++ b/keysign/send.py
@@ -9,6 +9,7 @@ gi.require_version('Gtk', '3.0')
 from gi.repository import Gtk
 from gi.repository import GLib
 from gi.repository import Gdk
+from gpg import errors
 from wormhole.errors import ServerConnectionError, LonelyError, WrongPasswordError
 if __name__ == "__main__":
     from twisted.internet import gtk3reactor
@@ -107,6 +108,10 @@ class SendApp:
         filename = data.get_text()
         filename = filename[7:].strip('\r\n\x00')  # remove file://, \r\n and NULL
         log.info("Received file: %s" % filename)
+        try:
+            gpgmh.import_signature(filename)
+        except errors.GPGMEError as e:
+            log.error(e)
 
     @inlineCallbacks
     def on_key_activated(self, widget, key):


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]