From ca1a0a62e6af6a49d61c46e6946ed34345ba4c1c Mon Sep 17 00:00:00 2001 From: Solderpunk Date: Sun, 17 May 2020 18:35:35 +0200 Subject: [PATCH] Cache certificates to disk in the expectation of more advanced cert wrangling in future. --- av98.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/av98.py b/av98.py index d4252f4..8512c51 100755 --- a/av98.py +++ b/av98.py @@ -684,6 +684,9 @@ Slow internet connection? Use 'set timeout' to be more patient.""") VALUES (?, ?, ?, ?, ?, ?)""", (host, address, fingerprint, now, now, 1)) self.db_conn.commit() + certdir = os.path.join(self.config_dir, "cert_cache") + with open(os.path.join(certdir, fingerprint+".crt"), "wb") as fp: + fp.write(cert) else: raise Exception("TOFU Failure!") @@ -694,6 +697,11 @@ Slow internet connection? Use 'set timeout' to be more patient.""") VALUES (?, ?, ?, ?, ?, ?)""", (host, address, fingerprint, now, now, 1)) self.db_conn.commit() + certdir = os.path.join(self.config_dir, "cert_cache") + if not os.path.exists(certdir): + os.makedirs(certdir) + with open(os.path.join(certdir, fingerprint+".crt"), "wb") as fp: + fp.write(cert) def _get_handler_cmd(self, mimetype): # Now look for a handler for this mimetype @@ -834,7 +842,7 @@ Slow internet connection? Use 'set timeout' to be more patient.""") if not name.strip(): print("Aborting.") return - certdir = os.path.join(self.config_dir, "certs") + certdir = os.path.join(self.config_dir, "client_certs") self._generate_client_cert(self, certdir, name) def _generate_client_cert(self, certdir, basename, transient=False): @@ -849,7 +857,7 @@ Slow internet connection? Use 'set timeout' to be more patient.""") self._activate_client_cert(certfile, keyfile) def _choose_client_cert(self): - certdir = os.path.join(self.config_dir, "certs") + certdir = os.path.join(self.config_dir, "client_certs") certs = glob.glob(os.path.join(certdir, "*.crt")) certdir = {} for n, cert in enumerate(certs):