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 <ben@adversary.org>
This commit is contained in:
parent
92cd060f5e
commit
0e762608ef
3
AUTHORS
3
AUTHORS
@ -62,6 +62,9 @@ Tobias Mueller <muelli@cryptobitch.de>
|
|||||||
Ben McGinnes <ben@adversary.org>
|
Ben McGinnes <ben@adversary.org>
|
||||||
2017-12-16:20171216002102.l6aejk5xdp6xhtfi@adversary.org:
|
2017-12-16:20171216002102.l6aejk5xdp6xhtfi@adversary.org:
|
||||||
|
|
||||||
|
Jacob Adams <tookmund@gmail.com>
|
||||||
|
2018-06-03:ad5141df-b6cc-6c2a-59df-b2f18f7160fd@gmail.com:
|
||||||
|
|
||||||
|
|
||||||
Copyright 2001, 2002, 2012, 2013 g10 Code GmbH
|
Copyright 2001, 2002, 2012, 2013 g10 Code GmbH
|
||||||
|
|
||||||
|
@ -509,6 +509,25 @@ class Context(GpgmeWrapper):
|
|||||||
|
|
||||||
return results
|
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,
|
def keylist(self, pattern=None, secret=False,
|
||||||
mode=constants.keylist.mode.LOCAL,
|
mode=constants.keylist.mode.LOCAL,
|
||||||
source=None):
|
source=None):
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env python
|
#!/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.
|
# This file is part of GPGME.
|
||||||
#
|
#
|
||||||
@ -69,10 +69,14 @@ def check_result(result, fpr, secret):
|
|||||||
|
|
||||||
c = gpg.Context()
|
c = gpg.Context()
|
||||||
|
|
||||||
c.op_import(gpg.Data(file=support.make_filename("pubkey-1.asc")))
|
result = c.key_import(open(support.make_filename("pubkey-1.asc"), 'rb').read())
|
||||||
result = c.op_import_result()
|
|
||||||
check_result(result, "ADAB7FCC1F4DE2616ECFA402AF82244F9CD9FD55", False)
|
check_result(result, "ADAB7FCC1F4DE2616ECFA402AF82244F9CD9FD55", False)
|
||||||
|
|
||||||
c.op_import(gpg.Data(file=support.make_filename("seckey-1.asc")))
|
result = c.key_import(open(support.make_filename("seckey-1.asc"), 'rb').read())
|
||||||
result = c.op_import_result()
|
|
||||||
check_result(result, "ADAB7FCC1F4DE2616ECFA402AF82244F9CD9FD55", True)
|
check_result(result, "ADAB7FCC1F4DE2616ECFA402AF82244F9CD9FD55", True)
|
||||||
|
|
||||||
|
try:
|
||||||
|
result = c.key_import(b"thisisnotakey")
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
assert result.considered == 0
|
||||||
|
Loading…
Reference in New Issue
Block a user