aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AUTHORS3
-rw-r--r--lang/python/src/core.py19
-rwxr-xr-xlang/python/tests/t-import.py14
3 files changed, 31 insertions, 5 deletions
diff --git a/AUTHORS b/AUTHORS
index 1bd3209d..e0136ffd 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -62,6 +62,9 @@ Tobias Mueller <[email protected]>
Ben McGinnes <[email protected]>
2017-12-16:[email protected]:
+Jacob Adams <[email protected]>
+2018-06-03:[email protected]:
+
Copyright 2001, 2002, 2012, 2013 g10 Code GmbH
diff --git a/lang/python/src/core.py b/lang/python/src/core.py
index bd95d231..1b83a5d4 100644
--- a/lang/python/src/core.py
+++ b/lang/python/src/core.py
@@ -509,6 +509,25 @@ class Context(GpgmeWrapper):
return results
+ def key_import(self, data):
+ """Import data
+
+ Imports the given data into the Context.
+
+ Returns:
+ result -- information about the imported data
+
+ Raises:
+ GPGMEError -- as signaled by the underlying library
+ ValueError -- Raised if no keys are present in the data
+
+ """
+ self.op_import(data)
+ result = self.op_import_result()
+ if result.considered == 0:
+ raise ValueError
+ return result
+
def keylist(self, pattern=None, secret=False,
mode=constants.keylist.mode.LOCAL,
source=None):
diff --git a/lang/python/tests/t-import.py b/lang/python/tests/t-import.py
index e2edf5a2..44dc360b 100755
--- a/lang/python/tests/t-import.py
+++ b/lang/python/tests/t-import.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-# Copyright (C) 2016 g10 Code GmbH
+# Copyright (C) 2016 Tobias Mueller <muelli at cryptobitch.de>
#
# This file is part of GPGME.
#
@@ -69,10 +69,14 @@ def check_result(result, fpr, secret):
c = gpg.Context()
-c.op_import(gpg.Data(file=support.make_filename("pubkey-1.asc")))
-result = c.op_import_result()
+result = c.key_import(open(support.make_filename("pubkey-1.asc"), 'rb').read())
check_result(result, "ADAB7FCC1F4DE2616ECFA402AF82244F9CD9FD55", False)
-c.op_import(gpg.Data(file=support.make_filename("seckey-1.asc")))
-result = c.op_import_result()
+result = c.key_import(open(support.make_filename("seckey-1.asc"), 'rb').read())
check_result(result, "ADAB7FCC1F4DE2616ECFA402AF82244F9CD9FD55", True)
+
+try:
+ result = c.key_import(b"thisisnotakey")
+except ValueError:
+ pass
+assert result.considered == 0