summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2020-09-06 17:24:38 +0200
committerMichał Górny <mgorny@gentoo.org>2020-09-06 17:24:38 +0200
commit1785a5405090eff4ecaea6bb34846ddc8e08572f (patch)
treeca7a15be541fe597fbdce9a922f71d60b5b799da
parentc4933eb9ccffb8a5eb200d5c750029bedfa2669e (diff)
downloadgemato-1785a5405090eff4ecaea6bb34846ddc8e08572f.tar.gz
openpgp: Move get_wkd_url() to global scope
Signed-off-by: Michał Górny <mgorny@gentoo.org>
-rw-r--r--gemato/openpgp.py33
-rw-r--r--tests/test_openpgp.py3
2 files changed, 19 insertions, 17 deletions
diff --git a/gemato/openpgp.py b/gemato/openpgp.py
index abbe5cd..901bfa5 100644
--- a/gemato/openpgp.py
+++ b/gemato/openpgp.py
@@ -51,6 +51,22 @@ class OpenPGPSignatureData:
self.primary_key_fingerprint = primary_key_fingerprint
+ZBASE32_TRANSLATE = bytes.maketrans(
+ b'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',
+ b'ybndrfg8ejkmcpqxot1uwisza345h769')
+
+
+def get_wkd_url(email):
+ localname, domain = email.encode('utf8').split(b'@', 1)
+ b32 = (
+ base64.b32encode(hashlib.sha1(localname.lower()).digest())
+ .translate(ZBASE32_TRANSLATE).decode())
+ uenc = urllib.parse.quote(localname)
+ ldomain = domain.lower().decode('utf8')
+ return (f'https://{ldomain}/.well-known/openpgpkey/hu/'
+ f'{b32}?l={uenc}')
+
+
class SystemGPGEnvironment:
"""
OpenPGP environment class that uses the global OpenPGP environment
@@ -354,21 +370,6 @@ debug-level guru
return ret
- zbase32_translate = bytes.maketrans(
- b'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',
- b'ybndrfg8ejkmcpqxot1uwisza345h769')
-
- @classmethod
- def get_wkd_url(cls, email):
- localname, domain = email.encode('utf8').split(b'@', 1)
- b32 = (
- base64.b32encode(hashlib.sha1(localname.lower()).digest())
- .translate(cls.zbase32_translate).decode())
- uenc = urllib.parse.quote(localname)
- ldomain = domain.lower().decode('utf8')
- return (f'https://{ldomain}/.well-known/openpgpkey/hu/'
- f'{b32}?l={uenc}')
-
def refresh_keys_wkd(self):
"""
Attempt to fetch updated keys using WKD. Returns true if *all*
@@ -402,7 +403,7 @@ debug-level guru
'https': self.proxy,
}
for a in addrs:
- url = self.get_wkd_url(a)
+ url = get_wkd_url(a)
resp = requests.get(url, proxies=proxies)
if resp.status_code != 200:
logging.debug(f'refresh_keys_wkd(): failing due to failed'
diff --git a/tests/test_openpgp.py b/tests/test_openpgp.py
index 9528b7b..5e71830 100644
--- a/tests/test_openpgp.py
+++ b/tests/test_openpgp.py
@@ -30,6 +30,7 @@ from gemato.manifest import ManifestFile
from gemato.openpgp import (
SystemGPGEnvironment,
IsolatedGPGEnvironment,
+ get_wkd_url,
)
from gemato.recursiveloader import ManifestRecursiveLoader
@@ -842,7 +843,7 @@ def test_refresh_wkd_fallback_to_hkp(openpgp_env_with_refresh,
'iy9q119eutrkn8s1mk4r39qejnbu3n5q?l=Joe.Doe'),
])
def test_get_wkd_url(email, expected):
- assert IsolatedGPGEnvironment.get_wkd_url(email) == expected
+ assert get_wkd_url(email) == expected
def signal_desc(sig):