added my Recipes
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
From ed44474c11f577c1644910964a917a4cf701bb0f Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 26 Jan 2016 14:24:26 -0500
|
||||
Subject: [PATCH] reflect 2.1 reporting for key imports
|
||||
|
||||
GnuPG 2.1 changes how it reports key imports. These changes should
|
||||
make the pygpgme test suite compatible with GnuPG 2.1.
|
||||
|
||||
See also:
|
||||
https://lists.gnupg.org/pipermail/gnupg-devel/2016-January/030718.html
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
|
||||
|
||||
---
|
||||
tests/test_import.py | 22 +++++++++++-----------
|
||||
1 file changed, 11 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/tests/test_import.py b/tests/test_import.py
|
||||
index 10eb816..597eb47 100644
|
||||
--- a/tests/test_import.py
|
||||
+++ b/tests/test_import.py
|
||||
@@ -55,7 +55,7 @@ class ImportTestCase(GpgHomeTestCase):
|
||||
ctx = gpgme.Context()
|
||||
with self.keyfile('key1.sec') as fp:
|
||||
result = ctx.import_(fp)
|
||||
- self.assertEqual(result.considered, 1)
|
||||
+ self.assertEqual(result.considered, 3)
|
||||
self.assertEqual(result.no_user_id, 0)
|
||||
self.assertEqual(result.imported, 1)
|
||||
self.assertEqual(result.imported_rsa, 0)
|
||||
@@ -64,18 +64,18 @@ class ImportTestCase(GpgHomeTestCase):
|
||||
self.assertEqual(result.new_sub_keys, 0)
|
||||
self.assertEqual(result.new_signatures, 0)
|
||||
self.assertEqual(result.new_revocations, 0)
|
||||
- self.assertEqual(result.secret_read, 1)
|
||||
- self.assertEqual(result.secret_imported, 1)
|
||||
+ self.assertEqual(result.secret_read, 3)
|
||||
+ self.assertEqual(result.secret_imported, 2)
|
||||
self.assertEqual(result.secret_unchanged, 0)
|
||||
self.assertEqual(result.skipped_new_keys, 0)
|
||||
self.assertEqual(result.not_imported, 0)
|
||||
self.assertEqual(len(result.imports), 2)
|
||||
self.assertEqual(result.imports[0],
|
||||
('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
|
||||
- None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
|
||||
+ None, gpgme.IMPORT_NEW))
|
||||
self.assertEqual(result.imports[1],
|
||||
('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
|
||||
- None, gpgme.IMPORT_NEW))
|
||||
+ None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
|
||||
# can we get the public key?
|
||||
key = ctx.get_key('E79A842DA34A1CA383F64A1546BB55F0885C65A4')
|
||||
# can we get the secret key?
|
||||
@@ -102,17 +102,17 @@ class ImportTestCase(GpgHomeTestCase):
|
||||
fp = BytesIO(b'\n'.join(keys))
|
||||
ctx = gpgme.Context()
|
||||
result = ctx.import_(fp)
|
||||
- self.assertEqual(result.considered, 3)
|
||||
+ self.assertEqual(result.considered, 5)
|
||||
self.assertEqual(result.no_user_id, 0)
|
||||
self.assertEqual(result.imported, 2)
|
||||
- self.assertEqual(result.imported_rsa, 1)
|
||||
+ self.assertEqual(result.imported_rsa, 0)
|
||||
self.assertEqual(result.unchanged, 0)
|
||||
self.assertEqual(result.new_user_ids, 0)
|
||||
self.assertEqual(result.new_sub_keys, 0)
|
||||
self.assertEqual(result.new_signatures, 1)
|
||||
self.assertEqual(result.new_revocations, 0)
|
||||
- self.assertEqual(result.secret_read, 1)
|
||||
- self.assertEqual(result.secret_imported, 1)
|
||||
+ self.assertEqual(result.secret_read, 3)
|
||||
+ self.assertEqual(result.secret_imported, 2)
|
||||
self.assertEqual(result.secret_unchanged, 0)
|
||||
self.assertEqual(result.skipped_new_keys, 0)
|
||||
self.assertEqual(result.not_imported, 0)
|
||||
@@ -122,10 +122,10 @@ class ImportTestCase(GpgHomeTestCase):
|
||||
None, gpgme.IMPORT_NEW))
|
||||
self.assertEqual(result.imports[1],
|
||||
('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
|
||||
- None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
|
||||
+ None, gpgme.IMPORT_SIG))
|
||||
self.assertEqual(result.imports[2],
|
||||
('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
|
||||
- None, gpgme.IMPORT_SIG))
|
||||
+ None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
|
||||
self.assertEqual(result.imports[3],
|
||||
('93C2240D6B8AA10AB28F701D2CF46B7FC97E6B0F',
|
||||
None, gpgme.IMPORT_NEW))
|
||||
@@ -0,0 +1,52 @@
|
||||
From ba0dc8273e4f83bcd2d43baa5910aae34b93048c Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Mon, 1 Feb 2016 19:25:12 -0500
|
||||
Subject: [PATCH] passphrase_cb is deprecated
|
||||
|
||||
https://bugs.gnupg.org/gnupg/issue767 indicates that
|
||||
gpgme_set_passphrase_cb is a deprecated corner of the API and that
|
||||
developers using gpgme should really rely on the gpg-agent to handle
|
||||
this stuff. This should actually simplify things for most
|
||||
installations -- just strip out all passphrase handling from your
|
||||
application entirely, relying on gpg to figure out how to find the
|
||||
agent, and relying on the agent figuring out how to prompt the user
|
||||
(if necessary).
|
||||
|
||||
However, if a developer really wants to use the passphrase callback
|
||||
approach, they'll have to use loopback pinentry. This sets up the
|
||||
test suite to be able to make those tests.
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
|
||||
|
||||
---
|
||||
tests/util.py | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/util.py b/tests/util.py
|
||||
index cd803c2..86892ca 100644
|
||||
--- a/tests/util.py
|
||||
+++ b/tests/util.py
|
||||
@@ -28,7 +28,9 @@ keydir = os.path.join(os.path.dirname(__file__), 'keys')
|
||||
|
||||
class GpgHomeTestCase(unittest.TestCase):
|
||||
|
||||
- gpg_conf_contents = ''
|
||||
+ gpg_conf_contents = 'pinentry-mode loopback'
|
||||
+ gpg_agent_conf_contents = 'allow-loopback-pinentry'
|
||||
+
|
||||
import_keys = []
|
||||
|
||||
def keyfile(self, key):
|
||||
@@ -41,6 +43,10 @@ class GpgHomeTestCase(unittest.TestCase):
|
||||
fp.write(self.gpg_conf_contents.encode('UTF-8'))
|
||||
fp.close()
|
||||
|
||||
+ fp = open(os.path.join(self._gpghome, 'gpg-agent.conf'), 'wb')
|
||||
+ fp.write(self.gpg_agent_conf_contents.encode('UTF-8'))
|
||||
+ fp.close()
|
||||
+
|
||||
# import requested keys into the keyring
|
||||
ctx = gpgme.Context()
|
||||
for key in self.import_keys:
|
||||
@@ -0,0 +1,30 @@
|
||||
From 579b5930e15de8855bf63b3c20b6c3aaf894c3eb Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Mon, 1 Feb 2016 19:27:59 -0500
|
||||
Subject: [PATCH] handle generic error when no passphrase callback present
|
||||
|
||||
apparently gpg 2.1 returns ERR_GENERAL right now if the pinentry was
|
||||
in loopback mode and no passphrase callback was supplied. Earlier
|
||||
versions supplied ERR_BAD_PASSPHRASE.
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
|
||||
|
||||
---
|
||||
tests/test_passphrase.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/test_passphrase.py b/tests/test_passphrase.py
|
||||
index 0a235e9..35b3c59 100644
|
||||
--- a/tests/test_passphrase.py
|
||||
+++ b/tests/test_passphrase.py
|
||||
@@ -41,7 +41,7 @@ class PassphraseTestCase(GpgHomeTestCase):
|
||||
new_sigs = ctx.sign(plaintext, signature, gpgme.SIG_MODE_CLEAR)
|
||||
except gpgme.GpgmeError as exc:
|
||||
self.assertEqual(exc.args[0], gpgme.ERR_SOURCE_GPGME)
|
||||
- self.assertEqual(exc.args[1], gpgme.ERR_BAD_PASSPHRASE)
|
||||
+ self.assertEqual(exc.args[1], gpgme.ERR_GENERAL)
|
||||
else:
|
||||
self.fail('gpgme.GpgmeError not raised')
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
GPG_AGENT_INFO= python test_all.py -v 2>&1 | sed -e '/\.\.\. ok/ s/^/PASS: /g' -e '/\.\.\. [ERROR|FAIL]/ s/^/FAIL: /g' -e '/\.\.\. skipped/ s/^/SKIP: /g' -e 's/ \.\.\. ok//g' -e 's/ \.\.\. ERROR//g' -e 's/ \.\.\. FAIL//g' -e 's/ \.\.\. skipped//g'
|
||||
Reference in New Issue
Block a user