The attached patch makes bzr-gtk verify testaments when checking GPG
signatures and renables Daniels' awesome GPG signature display work.

Cheers,

Jelmer

-- 
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: [EMAIL PROTECTED]
# target_branch: lp:bzr-gtk
# testament_sha1: 618257a39e91673c7c51698fdf01bd12d26e1a45
# timestamp: 2008-06-29 21:19:55 +0200
# base_revision_id: [EMAIL PROTECTED]
# 
# Begin patch
=== modified file 'revisionview.py'
--- revisionview.py	2008-06-24 10:34:38 +0000
+++ revisionview.py	2008-06-29 19:18:34 +0000
@@ -22,9 +22,11 @@
 import gobject
 import webbrowser
 
-from bzrlib.plugins.gtk import icon_path
 from bzrlib.osutils import format_date
 from bzrlib.util.bencode import bdecode
+from bzrlib.testament import Testament
+
+from bzrlib.plugins.gtk import icon_path
 
 try:
     from bzrlib.plugins.gtk import seahorse
@@ -220,7 +222,17 @@
                                         "This revision has not been signed.")
 
     def show_signature(self, crypttext):
-        key = seahorse.verify(crypttext)
+        (cleartext, key) = seahorse.verify(crypttext)
+
+        assert cleartext is not None
+
+        inv = self.repository.get_inventory(self.revision.revision_id)
+        expected_testament = Testament(self.revision, inv).as_short_text()
+        if expected_testament != cleartext:
+            self.signature_image.set_from_file(icon_path("sign-bad.png"))
+            self.signature_label.set_markup("<b>Signature does not match repository data</b>\n" +
+                        "The signature plaintext is different from the expected testament plaintext.")
+            return
 
         if key and key.is_available():
             if key.is_trusted():
@@ -322,8 +334,8 @@
         self._create_general()
         self._create_relations()
         # Disabled because testaments aren't verified yet:
-        # if has_seahorse:
-        #    self._create_signature()
+        if has_seahorse:
+            self._create_signature()
         self._create_file_info_view()
         self._create_bugs()
 

=== modified file 'seahorse.py'
--- seahorse.py	2008-06-20 03:33:17 +0000
+++ seahorse.py	2008-06-29 19:07:23 +0000
@@ -85,7 +85,10 @@
         if key not in keyset:
             keyset[key] = Key(key)
 
-        return keyset[key]
+        return (cleartext, keyset[key])
+
+    return (cleartext, None)
+
 
 class Key:
 

# Begin bundle
IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWYYg2jEABN7/gERQBABxb///
UhMdDr////BgCC+emNgA+gjYaEoAAIgyUxGTVPInpNPU9J6j8qekeoD1NAA0HqAHMAmAmRgBGJiY
TCYIaYmmBzAJgJkYARiYmEwmCGmJpgMSJqGp6NE9BMBMj0RpoaaNBpgmQwikhMCGhPRNTU9kZTTa
mynoCQAGmnqCSQCaATCmRlNMmTKZNNGhoaGgNDAD6PHZXtZ7NC64gtp75JNeI1iegJQi4vRrFOFK
4K4AnZiIpNgcgmmWb7Lu7uq+aoCuYSvJjp2zHppM9tJKa2ARNCy+S3MeYHxDMGEzDMMzND5BoPMC
5FhGEUXCVwqplUQliYSsqKoPE0c3Fsa7uC+ZnCDl9D++h82D+eKiqEWIfxdJQHDE5qAULoRf6ohU
YZgvvJotIAQYXTDX0byv7+f2LmuanqHzh2JBHVPk+HTRYyXfyw1Y2AEanNc8xMpwQkGZp0H5hO9e
CVrkWpWKnRSN+dqr523INIhMALsMxJNoI3AaJ6lg6TaCds0tUwOuyZrcvFfKCALrPwbKE5A81Leo
TKrJ1RQpxMzBmZyoxEnpnnFIEzhAi7JAwBfCBQRLziOSA3KUXAmCm2RM5FgiIDxxxggCA8FUUSQ6
CQDhyU7j2PPIF0r+GQqMldOGMK/leOFQU+T/aKmlikMDxjvVxOOuVxdZ1LahilGiUiJQ2Wxw0WSs
U3nsyE86RE54JShgXpZExxcVMDUtMBiRQ930W+Ba1uN5FXZoEamRoSWRbaGw4qCeZs/IVyfuQGiV
JKLKYphaRFF4JWoWBA4AXq+d5NgTD7Npl9xBxEonOL9xxwE+gxVFtRbECZkMZ2FpYXoxLi0iUNBH
ZliGsREhW3YkhTggg9iepGkiAxI0s4khHC0RmomtibmA3quSqYmpQcZHAVR5aO4goRMM9xT2Fuba
Cb4ONTiFhutDJPN3nAuORGAqhMSIEsdz8h3W6krIrgCCoh6IBZyWO4iMB8jUwAYoPORscCguFywB
7PeDpFst1UQNtsKpYJiSqWhmFgYiORgSIjy8wMjtH2TnRnpAW3q0qTmKpGl5U4GJU04vHjrNNJLn
eQheUWQEbjQcZEhZGIUGOQLOASUwmz1wHCIjAs9BwpAlOoxUvzedBT6ihsqGAxppwKmozGcy9wMs
uXOEQ1OE0gJLjEnqW9SikbdNkeQ82HNAB5sD0/WDm1BYMOYO5ky6oINsMEEQkwWv5D83eymZ2YcT
DJ6ydzz2CBRlFEpBFfTQNaqEUGRldTm7H1I0QEAyAKYiTKpqAOi4MxuLZiA6D6CXpOQ4USJ2kCJ1
HcdC4txsP+v5Ddp4SeSOnszt32F0SHg+p+05CAtSxEUWFoB41tF1dfwgl1jEZlovKuBxKEyCeaHY
POw6xTOw8TP3eGYgKHt+h24l+reC+7xPWAbCWpIqOQ/E+JMViSCgnNReNJds4nvBu2uyVsnOerD+
9ygaC/7svpAUab7mhuGwmMQIiNDUHruKFUK0yLSpYOPSXyMd/M60qnE6zL3nr7/qDzePe73xTny/
qcWgDvH0v0OJ5D4RZ2euurih5ngdphZ4hmr0shWVYwTBMOEUhoWmtoSFGhz3BNoLkrMLVmX5TlMX
OBORlH+32EDwwaYDD1EmUJmy7GzCBdbT92WYHo1bxqH72JEmtajJEnI7IVakO4+2qEdyqonNbHQW
xzPAPceg8F3BI8yJ5jhwx2m8mNiHApJN4F54h9OIdId5CyIJqxOD1V0yECO4GE4xCBNzw+1IH2Z+
8ez4RDpj4i+A5+GLhnpy8xNtImcLTcD0qW2VzkYOPx1i0j80OBtAqu+8DpcvYjZYNzHzUza/15Vm
a+vc21szkVYM6rJ4uqQadr5f0+nUepIIkwSSCTBJjgfLt1w7XTm/6OhTrE5nZndC6Mkge5Wr0KAw
hKHNILxqH6A2l/JpaEQ6HB8G9yfU0Bxjl0Es2/DMuoziBWQLciGV7Wsdra7RK6nYuI8QbmUUvvGW
A1wKUarFoGxnUoSaRhHkPQ625rPPwEpuAghSIAIBteJs6BK45g89Y0vaJiCmIa0GCH3PRk97QjwU
8RAyL1hqIidGHEXT4ZnDa7XaJ2ntiX+WwGoyk5j1t1zcMP7OkageZ8Dwa3d7SVDKpyca2aGikAzF
3v7+udnPVxBoZpITvk9V4gW5ceSJuwoWgJ3r2JTrBxJRBUMhlA4msSqdHQ9hiKNbJpGHTKs3DzED
cGjPF+uXsSN1W3pJlpApqglOSzKuhnDehlEh1CZxzQJap3kWdgzmkxRboN80okTSIg9zI6x8+wUP
avJVFIIAVebiGIKCdzXBaG2RZi0IuT2gBaqDsoCcKN96RsPBmS+aYUmEPXCwWQRF40Pir/ZDipLj
PNMyowXXl4mEaVCSbxyKuQtZIZ/Rp1PIGgBvnTI4wmmnmAkE7NIY0dN4eccQaHeYD+j/4u5IpwoS
EMQbRiA=
-- 
bzr-gtk mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.canonical.com/mailman/listinfo/bzr-gtk

Reply via email to