summaryrefslogtreecommitdiff
path: root/branding/scripts/check-ca-crt.py
diff options
context:
space:
mode:
authorkali kaneko (leap communications) <kali@leap.se>2020-10-09 18:53:11 +0200
committerRuben Pollan <meskio@sindominio.net>2020-10-13 19:08:54 +0200
commit73d0c7a96df2212d5a3ee6289fc286f3e6459028 (patch)
treed304904b19b1ef365213876a60e19e232a36c95a /branding/scripts/check-ca-crt.py
parente4a2efb527fb09b548c14b13d28d0780941ca72d (diff)
[pkg] refactor vendor init/check
Diffstat (limited to 'branding/scripts/check-ca-crt.py')
-rwxr-xr-xbranding/scripts/check-ca-crt.py61
1 files changed, 0 insertions, 61 deletions
diff --git a/branding/scripts/check-ca-crt.py b/branding/scripts/check-ca-crt.py
deleted file mode 100755
index dbf9b40..0000000
--- a/branding/scripts/check-ca-crt.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env python3
-import re
-import sys
-import configparser
-import urllib.request
-
-SCRIPT_NAME = 'check-ca-crt.py'
-
-USAGE = '''Check that the stored provider CA matches the one announced online.
-Usage: {name} <provider> <config>
-
-Example: {name} riseup branding/config/vendor.conf'''.format(name=SCRIPT_NAME)
-
-
-def getLocalCert(provider):
- sanitized = re.sub(r'[^\w\s-]', '', provider).strip().lower()
- with open('branding/config/'
- '{provider}-ca.crt'.format(provider=sanitized)) as crt:
- return crt.read().strip()
-
-
-def getRemoteCert(uri):
- print("... checking cert from", uri)
- fp = urllib.request.urlopen(uri)
- remote_cert = fp.read().decode('utf-8').strip()
- fp.close()
- return remote_cert
-
-
-def getUriForProvider(provider, configfile):
- c = configparser.ConfigParser()
- c.read(configfile)
- return c[provider]['caURL']
-
-
-if __name__ == '__main__':
-
- if len(sys.argv) != 3:
- print('[!] Not enough arguments')
- print(USAGE)
- sys.exit(1)
-
- provider = sys.argv[1]
- config = sys.argv[2]
-
- try:
- uri = getUriForProvider(provider, config)
- except IndexError:
- print('[!] Misconfigured provider')
- sys.exit(1)
-
- local = getLocalCert(provider)
- remote = getRemoteCert(uri)
-
- try:
- assert local == remote
- except AssertionError:
- print('[!] ERROR: remote and local CA certs do not match')
- sys.exit(1)
- else:
- print('OK: local CA matches what provider announces')