/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/repository.py

  • Committer: Jelmer Vernooij
  • Date: 2019-01-01 21:38:07 UTC
  • mfrom: (7228 work)
  • mto: This revision was merged to the branch mainline in revision 7233.
  • Revision ID: jelmer@jelmer.uk-20190101213807-ay6uqghz0nnrgjvx
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
    graph,
29
29
    osutils,
30
30
    revision as _mod_revision,
31
 
    testament as _mod_testament,
32
31
    gpg,
33
32
    )
34
33
from breezy.bundle import serializer
887
886
                [r], specific_fileids=specific_fileids))[0]
888
887
 
889
888
    def store_revision_signature(self, gpg_strategy, plaintext, revision_id):
890
 
        with self.lock_write():
891
 
            signature = gpg_strategy.sign(plaintext, gpg.MODE_CLEAR)
892
 
            self.add_signature_text(revision_id, signature)
 
889
        raise NotImplementedError(self.store_revision_signature)
893
890
 
894
891
    def add_signature_text(self, revision_id, signature):
895
892
        """Store a signature text for a revision.
1087
1084
        raise NotImplementedError(self.make_working_trees)
1088
1085
 
1089
1086
    def sign_revision(self, revision_id, gpg_strategy):
1090
 
        with self.lock_write():
1091
 
            testament = _mod_testament.Testament.from_revision(
1092
 
                self, revision_id)
1093
 
            plaintext = testament.as_short_text()
1094
 
            self.store_revision_signature(gpg_strategy, plaintext, revision_id)
 
1087
        raise NotImplementedError(self.sign_revision)
1095
1088
 
1096
1089
    def verify_revision_signature(self, revision_id, gpg_strategy):
1097
1090
        """Verify the signature on a revision.
1101
1094
 
1102
1095
        :return: gpg.SIGNATURE_VALID or a failed SIGNATURE_ value
1103
1096
        """
1104
 
        with self.lock_read():
1105
 
            if not self.has_signature_for_revision_id(revision_id):
1106
 
                return gpg.SIGNATURE_NOT_SIGNED, None
1107
 
            signature = self.get_signature_text(revision_id)
1108
 
 
1109
 
            testament = _mod_testament.Testament.from_revision(
1110
 
                self, revision_id)
1111
 
 
1112
 
            (status, key, signed_plaintext) = gpg_strategy.verify(signature)
1113
 
            if testament.as_short_text() != signed_plaintext:
1114
 
                return gpg.SIGNATURE_NOT_VALID, None
1115
 
            return (status, key)
 
1097
        raise NotImplementedError(self.verify_revision_signature)
1116
1098
 
1117
1099
    def verify_revision_signatures(self, revision_ids, gpg_strategy):
1118
1100
        """Verify revision signatures for a number of revisions.