summaryrefslogtreecommitdiffstats
path: root/pym/portage/package
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-10-17 18:43:27 -0700
committerZac Medico <zmedico@gentoo.org>2012-10-17 18:43:27 -0700
commit4ec3c49862c9b3cf0ccd7bd2d8112faf36bb04f0 (patch)
treec48abe1eb3838d146ee0edbb5b0ea5333a3fc709 /pym/portage/package
parent4bd612e8521983f5b8ad939ba3ccf27fccb0d874 (diff)
downloadportage-4ec3c49862c9b3cf0ccd7bd2d8112faf36bb04f0.tar.gz
portage-4ec3c49862c9b3cf0ccd7bd2d8112faf36bb04f0.tar.bz2
portage-4ec3c49862c9b3cf0ccd7bd2d8112faf36bb04f0.zip
ManifestTask: stricter gpg key comparison
Use normalization and == comparison instead of the "in" operator.
Diffstat (limited to 'pym/portage/package')
-rw-r--r--pym/portage/package/ebuild/_parallel_manifest/ManifestTask.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/pym/portage/package/ebuild/_parallel_manifest/ManifestTask.py b/pym/portage/package/ebuild/_parallel_manifest/ManifestTask.py
index e155bc94b..d923088f5 100644
--- a/pym/portage/package/ebuild/_parallel_manifest/ManifestTask.py
+++ b/pym/portage/package/ebuild/_parallel_manifest/ManifestTask.py
@@ -82,13 +82,26 @@ class ManifestTask(CompositeTask):
return m.group(0)
return None
+ @staticmethod
+ def _normalize_gpg_key(key_str):
+ """
+ Strips leading "0x" and trailing "!", and converts to uppercase
+ (intended to be the same format as that in gpg --verify output).
+ """
+ key_str = key_str.upper()
+ if key_str.startswith("0X"):
+ key_str = key_str[2:]
+ key_str = key_str.rstrip("!")
+ return key_str
+
def _check_sig_key_exit(self, proc):
self._assert_current(proc)
parsed_key = self._parse_gpg_key(
proc.pipe_reader.getvalue().decode('utf_8', 'replace'))
if parsed_key is not None and \
- parsed_key.lower() in self.force_sign_key.lower():
+ self._normalize_gpg_key(parsed_key) == \
+ self._normalize_gpg_key(self.force_sign_key):
self.returncode = os.EX_OK
self._current_task = None
self.wait()