Rev 6262: (jelmer) Support verifying signatures on remote repositories. (Jelmer in file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/%2Btrunk/
Patch Queue Manager
pqm at pqm.ubuntu.com
Tue Nov 15 18:08:37 UTC 2011
At file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 6262 [merge]
revision-id: pqm at pqm.ubuntu.com-20111115180837-v38l0bf3uh02pe7p
parent: pqm at pqm.ubuntu.com-20111115174334-fgh3i5i0cv0vrroz
parent: jelmer at samba.org-20111115172202-inumr89vw3eo5ffg
committer: Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2011-11-15 18:08:37 +0000
message:
(jelmer) Support verifying signatures on remote repositories. (Jelmer
Vernooij)
modified:
bzrlib/gpg.py gpg.py-20051017065112-8654536d415dacc6
bzrlib/log.py log.py-20050505065812-c40ce11702fe5fb1
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/tests/per_repository/test_signatures.py test_signatures.py-20111010140248-mdiotjn81vw9p7yb-1
doc/en/release-notes/bzr-2.5.txt bzr2.5.txt-20110708125756-587p0hpw7oke4h05-1
=== modified file 'bzrlib/gpg.py'
--- a/bzrlib/gpg.py 2011-09-16 10:41:45 +0000
+++ b/bzrlib/gpg.py 2011-11-15 15:27:38 +0000
@@ -105,7 +105,7 @@
all_verifiable = True
for rev_id in revisions:
verification_result, uid =\
- repository.verify_revision(rev_id,self)
+ repository.verify_revision_signature(rev_id,self)
result.append([rev_id, verification_result, uid])
count[verification_result] += 1
if verification_result != SIGNATURE_VALID:
@@ -358,7 +358,7 @@
all_verifiable = True
for rev_id in revisions:
verification_result, uid =\
- repository.verify_revision(rev_id,self)
+ repository.verify_revision_signature(rev_id, self)
result.append([rev_id, verification_result, uid])
count[verification_result] += 1
if verification_result != SIGNATURE_VALID:
=== modified file 'bzrlib/log.py'
--- a/bzrlib/log.py 2011-10-14 13:56:45 +0000
+++ b/bzrlib/log.py 2011-11-15 15:27:38 +0000
@@ -341,7 +341,7 @@
from bzrlib import gpg
gpg_strategy = gpg.GPGStrategy(None)
- result = repo.verify_revision(rev_id, gpg_strategy)
+ result = repo.verify_revision_signature(rev_id, gpg_strategy)
if result[0] == gpg.SIGNATURE_VALID:
return "valid signature from {0}".format(result[1])
if result[0] == gpg.SIGNATURE_KEY_MISSING:
=== modified file 'bzrlib/remote.py'
--- a/bzrlib/remote.py 2011-09-18 14:57:54 +0000
+++ b/bzrlib/remote.py 2011-11-15 15:27:38 +0000
@@ -2007,6 +2007,11 @@
self._ensure_real()
return self._real_repository.has_signature_for_revision_id(revision_id)
+ def verify_revision_signature(self, revision_id, gpg_strategy):
+ self._ensure_real()
+ return self._real_repository.verify_revision_signature(
+ revision_id, gpg_strategy)
+
def item_keys_introduced_by(self, revision_ids, _files_pb=None):
self._ensure_real()
return self._real_repository.item_keys_introduced_by(revision_ids,
=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py 2011-11-08 20:00:30 +0000
+++ b/bzrlib/repository.py 2011-11-15 15:27:38 +0000
@@ -1188,7 +1188,7 @@
self.store_revision_signature(gpg_strategy, plaintext, revision_id)
@needs_read_lock
- def verify_revision(self, revision_id, gpg_strategy):
+ def verify_revision_signature(self, revision_id, gpg_strategy):
"""Verify the signature on a revision.
:param revision_id: the revision to verify
=== modified file 'bzrlib/tests/per_repository/test_signatures.py'
--- a/bzrlib/tests/per_repository/test_signatures.py 2011-11-13 14:07:38 +0000
+++ b/bzrlib/tests/per_repository/test_signatures.py 2011-11-15 17:22:02 +0000
@@ -28,17 +28,17 @@
class TestSignatures(per_repository.TestCaseWithRepository):
+ def setUp(self):
+ super(TestSignatures, self).setUp()
+ if not self.repository_format.supports_revision_signatures:
+ raise tests.TestNotApplicable(
+ "repository does not support signing revisions")
+
# TODO 20051003 RBC:
# compare the gpg-to-sign info for a commit with a ghost and
# an identical tree without a ghost
# fetch missing should rewrite the TOC of weaves to list newly available parents.
- def setUp(self):
- super(TestSignatures, self).setUp()
- if not self.repository_format.supports_revision_signatures:
- raise tests.TestNotApplicable(
- "repository does not support signing revisions")
-
def test_sign_existing_revision(self):
wt = self.make_branch_and_tree('.')
wt.commit("base", allow_pointless=True, rev_id='A')
@@ -100,6 +100,32 @@
self.assertEqual(repo.get_signature_text('A'),
d2.open_repository().get_signature_text('A'))
+ def test_verify_revision_signature_not_signed(self):
+ wt = self.make_branch_and_tree('.')
+ wt.commit("base", allow_pointless=True, rev_id='A')
+ strategy = gpg.LoopbackGPGStrategy(None)
+ self.assertEquals(
+ (gpg.SIGNATURE_NOT_SIGNED, None),
+ wt.branch.repository.verify_revision_signature('A', strategy))
+
+ def test_verify_revision_signature(self):
+ wt = self.make_branch_and_tree('.')
+ wt.commit("base", allow_pointless=True, rev_id='A')
+ strategy = gpg.LoopbackGPGStrategy(None)
+ repo = wt.branch.repository
+ self.addCleanup(repo.lock_write().unlock)
+ repo.start_write_group()
+ repo.sign_revision('A', strategy)
+ repo.commit_write_group()
+ self.assertEqual('-----BEGIN PSEUDO-SIGNED CONTENT-----\n' +
+ Testament.from_revision(repo,
+ 'A').as_short_text() +
+ '-----END PSEUDO-SIGNED CONTENT-----\n',
+ repo.get_signature_text('A'))
+ self.assertEquals(
+ (gpg.SIGNATURE_VALID, None, ),
+ repo.verify_revision_signature('A', strategy))
+
class TestUnsupportedSignatures(per_repository.TestCaseWithRepository):
=== modified file 'doc/en/release-notes/bzr-2.5.txt'
--- a/doc/en/release-notes/bzr-2.5.txt 2011-11-14 04:46:48 +0000
+++ b/doc/en/release-notes/bzr-2.5.txt 2011-11-15 17:22:02 +0000
@@ -32,6 +32,9 @@
.. Fixes for situations where bzr would previously crash or give incorrect
or undesirable results.
+* Support verifying signatures on remote repositories.
+ (Jelmer Vernooij, #889694)
+
Documentation
*************
@@ -43,6 +46,9 @@
.. Changes that may require updates in plugins or other code that uses
bzrlib.
+* ``Repository.verify_revision`` has been renamed to
+ ``Repository.verify_revision_signature``. (Jelmer Vernooij)
+
Internals
*********
More information about the bazaar-commits
mailing list