about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorNguyễn Gia Phong <cnx@loang.net>2025-06-03 22:20:22 +0900
committerNguyễn Gia Phong <cnx@loang.net>2025-06-03 22:20:22 +0900
commit8b83c1f04c808558a8097022466b2d4327dd62af (patch)
tree9436b81ce05b06e0d1e789fda7a8b74a67e1f463 /src
parentddaee1e438b06ced6ec621db0e37d4c9968fe835 (diff)
downloadscadere-8b83c1f04c808558a8097022466b2d4327dd62af.tar.gz
DRY up base64 handling
Diffstat (limited to 'src')
-rw-r--r--src/scadere/check.py10
-rw-r--r--src/scadere/listen.py11
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),