From 42b2367cd5ffc39384e79fcab308f02ed3905110 Mon Sep 17 00:00:00 2001 From: Finn Date: Fri, 1 Jan 2016 15:17:41 -0800 Subject: [PATCH 1/3] If a key is provided, check if it can be found on some public key servers --- .travis.yml | 1 + tests.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/.travis.yml b/.travis.yml index 9bcb1da..c619271 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,4 +3,5 @@ addons: apt: packages: - python3 + - python3-gnupg script: ./tests.py diff --git a/tests.py b/tests.py index 3e10342..f02fda2 100755 --- a/tests.py +++ b/tests.py @@ -2,15 +2,19 @@ import json import os import sys +import gnupg REQUIRED_FIELDS = ['publicKey', 'password', 'contact'] RECOMMENDED_FIELDS = ['gpg'] +GPG_SERVERS = ["pgp.mit.edu", "keys.gnupg.net"] RED = '\x1b[01;31m' GREEN = '\x1b[01;32m' YELLOW = '\x1b[01;33m' END = '\x1b[0m' +gpg = gnupg.GPG() + def validate(path): print("Validating %s" % path) @@ -30,6 +34,18 @@ def validate(path): warning = True print(" %sHost %s is missing the recommended field %s%s" % (YELLOW, host, field, END)) + if "gpg" in peers[host]: + is_on_keyserver = False + for server in GPG_SERVERS: + gpg_result = gpg.recv_keys(server, peers[host]['gpg']) + print(" %s%s key(s) found on %s when searching for %s%s" % + (YELLOW, gpg_result.count, server, peers[host]['gpg'], END)) + if gpg_result.count > 0: + is_on_keyserver = True + if not is_on_keyserver: + print(" %s%s not found on any keyserver%s" % + (RED, peers[host]['gpg'], END)) + return False if warning: print(" %sSuccess, but missing recommended fields%s" % (YELLOW, END)) else: From 7aa47d639ed7ee7ffb49abe874f3194c895e0061 Mon Sep 17 00:00:00 2001 From: Finn Date: Fri, 1 Jan 2016 15:21:43 -0800 Subject: [PATCH 2/3] Update travis.yml to install depends better --- .travis.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index c619271..5783f13 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ sudo: false -addons: - apt: - packages: - - python3 - - python3-gnupg +python: + - "3.4" +language: python +install: "pip install gnupg" script: ./tests.py From e153b0506735b3284c87632bb15853572df85088 Mon Sep 17 00:00:00 2001 From: Finn Date: Fri, 1 Jan 2016 15:28:44 -0800 Subject: [PATCH 3/3] ubuntu's python-gnupg is different from pypi's gnupg --- tests.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests.py b/tests.py index f02fda2..05db358 100755 --- a/tests.py +++ b/tests.py @@ -39,8 +39,8 @@ def validate(path): for server in GPG_SERVERS: gpg_result = gpg.recv_keys(server, peers[host]['gpg']) print(" %s%s key(s) found on %s when searching for %s%s" % - (YELLOW, gpg_result.count, server, peers[host]['gpg'], END)) - if gpg_result.count > 0: + (YELLOW, len(gpg_result.results), server, peers[host]['gpg'], END)) + if len(gpg_result.results) > 0: is_on_keyserver = True if not is_on_keyserver: print(" %s%s not found on any keyserver%s" %