Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix "signature verification error" due to expired key #526

Merged
merged 5 commits into from
Oct 6, 2020

Conversation

micahflee
Copy link
Collaborator

PGP key servers are the worst.

This error was happening because the public key included in torbrowser-launcher expired, and refreshing keys from the keys.openpgp.org keyserver failed because Tor Project didn't specifically push the new key and verify their email address with that keyserver. And refreshing from SKS keyservers is not an option because the SKS project is permanently broken, and the Tor Browser signing key is spammed with so many fake sigs that you can't download it. (The same thing has happened to my personal key.)

So this PR does away with keyservers altogether and instead updates the PGP key using WKD, fetching the public key from torproject.org, which is what Tor's sig verification documentation now calls for anyway.

It also includes a new, non-expired version of the public key. And fixes another bug, using package version comparison instead of string comparison to compare version numbers, so that "10" is not less than "9".

I'm terribly sorry for ignoring this issue for so long, everyone. If you're trustworthy and want to take over maintenance of this project please contact me at micah@micahflee.com.

Fixes #525, #524, #523, #520, #519, #518, #517, #516, #515, #514, #512, #510, #509, #508, #504, #498, #497, #496, #495, #493, #492, #491, #490, #489, #487, #481, #476, #474, #467, #458, #457, #455, #454, #453, #452, #448, #447, #437, #431, #430, #429, #428, #424, #410, #388, #386, #384, #379

@@ -37,6 +37,7 @@
import gpg
import shutil
import xml.etree.ElementTree as ET
from packaging import version

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you use setuptools instead of distutils, you could add install_requires=["packaging"], to your setup() arguments and thereby guarantee the dependency is installed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

error key
2 participants