diff options
author | Nguyễn Gia Phong <cnx@loang.net> | 2025-06-03 22:20:22 +0900 |
---|---|---|
committer | Nguyễn Gia Phong <cnx@loang.net> | 2025-06-03 22:20:22 +0900 |
commit | 8b83c1f04c808558a8097022466b2d4327dd62af (patch) | |
tree | 9436b81ce05b06e0d1e789fda7a8b74a67e1f463 /src | |
parent | ddaee1e438b06ced6ec621db0e37d4c9968fe835 (diff) | |
download | scadere-8b83c1f04c808558a8097022466b2d4327dd62af.tar.gz |
DRY up base64 handling
Diffstat (limited to 'src')
-rw-r--r-- | src/scadere/check.py | 10 | ||||
-rw-r--r-- | src/scadere/listen.py | 11 |
2 files changed, 15 insertions, 6 deletions
diff --git a/src/scadere/check.py b/src/scadere/check.py index 5764382..23ba189 100644 --- a/src/scadere/check.py +++ b/src/scadere/check.py @@ -27,7 +27,12 @@ from sys import argv, stderr, stdout from . import __version__, GNUHelpFormatter, NetLoc -__all__ = ['check', 'main'] +__all__ = ['main'] + + +def base64_from_str(string): + """Convert string to base64 format in bytes.""" + return base64(string.encode()).decode() def check(netlocs, after, output, fake_ca=None): @@ -62,8 +67,7 @@ def check(netlocs, after, output, fake_ca=None): print(not_before.isoformat(), not_after.isoformat(), # As unique identifier hostname, port, cert['serialNumber'], - base64(ca.encode()).decode(), - file=output) + base64_from_str(ca), file=output) def main(arguments=argv[1:]): diff --git a/src/scadere/listen.py b/src/scadere/listen.py index 6dc8f3a..bf179e6 100644 --- a/src/scadere/listen.py +++ b/src/scadere/listen.py @@ -31,7 +31,7 @@ from sys import argv from . import __version__, GNUHelpFormatter, NetLoc -__all__ = ['listen', 'main', 'parse_summary'] +__all__ = ['main'] def parse_summary(line): @@ -66,13 +66,18 @@ async def describe_status(writer, status): await writer.drain() +def str_from_base64(string): + """Decode string in base64 format.""" + return from_base64(string.encode()).decode() + + def body(not_before, not_after, hostname, port, serial, issuer): """Describe the given certificate in XHTML.""" return (('h1', 'TLS certificate information'), ('dl', ('dt', 'Domain'), ('dd', hostname), ('dt', 'Port'), ('dd', port), - ('dt', 'Issuer'), ('dd', from_base64(issuer.encode()).decode()), + ('dt', 'Issuer'), ('dd', str_from_base64(issuer)), ('dt', 'Serial number'), ('dd', serial), ('dt', 'Valid from'), ('dd', not_before), ('dt', 'Valid until'), ('dd', not_after))) @@ -83,7 +88,7 @@ def entry(base_url, cert): not_before, not_after, hostname, port, serial, issuer = cert url = urljoin(base_url, path(hostname, port, issuer, serial)) return ('entry', - ('author', ('name', from_base64(issuer.encode()).decode())), + ('author', ('name', str_from_base64(issuer))), ('content', {'type': 'xhtml'}, ('div', {'xmlns': 'http://www.w3.org/1999/xhtml'}, *body(*cert))), ('id', url), |