=== modified file 'smart/channels/apt_deb.py' --- smart/channels/apt_deb.py 2010-07-02 13:19:08 +0000 +++ smart/channels/apt_deb.py 2010-07-18 15:13:32 +0000 @@ -118,6 +118,7 @@ badsig = False goodsig = False validsig = None + signature = None for line in output.splitlines(): if line.startswith("[GNUPG:]"): tokens = line[8:].split() @@ -126,13 +127,16 @@ validsig = tokens[1] elif first == "GOODSIG": goodsig = True + signature = tokens[1] + elif first == "NO_PUBKEY": + signature = tokens[1] elif first == "BADSIG": badsig = True if badsig: raise Error, _("Channel '%s' has bad signature") % self if (not goodsig or (self._fingerprint and validsig != self._fingerprint)): - raise Error, _("Channel '%s' signed with unknown key") % self + raise Error, _("Channel '%s' signed with unknown key %s") % (self, signature[-8:]) def _parseRelease(self, release_item): checksum = {} === modified file 'tests/aptdeb.py' --- tests/aptdeb.py 2010-04-15 10:30:34 +0000 +++ tests/aptdeb.py 2010-07-18 15:07:46 +0000 @@ -14,6 +14,7 @@ from tests import TESTDATADIR +ID = "66643A0C" FINGERPRINT = "2AAC 7928 0FBF 0299 5EB5 60E2 2253 B29A 6664 3A0C" @@ -107,7 +108,7 @@ self.check_channel(channel) except Error, error: self.assertEquals(str(error), - "Channel 'alias' signed with unknown key") + "Channel 'alias' signed with unknown key %s" % ID) else: self.fail("Fetch worked with a bad signature! :-(") @@ -123,7 +124,7 @@ self.check_channel(channel) except Error, error: self.assertEquals(str(error), - "Channel 'alias' signed with unknown key") + "Channel 'alias' signed with unknown key %s" % ID) else: self.fail("Fetch worked with a bad signature! :-(") @@ -139,7 +140,7 @@ self.check_channel(channel) except Error, error: self.assertEquals(str(error), - "Channel 'alias' signed with unknown key") + "Channel 'alias' signed with unknown key %s" % ID) else: self.fail("Fetch worked with a bad signature! :-(") @@ -154,7 +155,7 @@ self.check_channel(channel) except Error, error: self.assertEquals(str(error), - "Channel 'alias' signed with unknown key") + "Channel 'alias' signed with unknown key %s" % ID) else: self.fail("Fetch worked with a bad signature! :-(") @@ -170,7 +171,7 @@ self.check_channel(channel) except Error, error: self.assertEquals(str(error), - "Channel 'alias' signed with unknown key") + "Channel 'alias' signed with unknown key %s" % ID) else: self.fail("Fetch worked with a bad signature! :-(") @@ -185,7 +186,7 @@ self.check_channel(channel) except Error, error: self.assertEquals(str(error), - "Channel 'alias' signed with unknown key") + "Channel 'alias' signed with unknown key %s" % ID) else: self.fail("Fetch worked with a bad signature! :-(")