diff options
author | Ben McGinnes <[email protected]> | 2018-06-16 23:28:30 +0000 |
---|---|---|
committer | Ben McGinnes <[email protected]> | 2018-06-16 23:28:30 +0000 |
commit | 0e762608ef5a598030b8d0e56261a830e1b7b724 (patch) | |
tree | 1a07635cc7d5e443ee523990f59e56e43372a1f7 | |
parent | script: groups.py (diff) | |
download | gpgme-0e762608ef5a598030b8d0e56261a830e1b7b724.tar.gz gpgme-0e762608ef5a598030b8d0e56261a830e1b7b724.zip |
python bindings: core key import
* The foundation of a pythonic key import function authored by Jacob
Adams.
* A unit testing script for the same function originally authored by
Tobias Mueller
* Added DCO reference for Jacob Adams to the GPGME AUTHORS file.
* Additional details regarding this patch are available here:
https://dev.gnupg.org/T4001
Signed-off-by: Ben McGinnes <[email protected]>
-rw-r--r-- | AUTHORS | 3 | ||||
-rw-r--r-- | lang/python/src/core.py | 19 | ||||
-rwxr-xr-x | lang/python/tests/t-import.py | 14 |
3 files changed, 31 insertions, 5 deletions
@@ -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 |