SYN-383: Fix parsing of verify_keys and catching of _DefGen_Return

pull/164/head
Erik Johnston 2015-05-19 11:56:18 +01:00
parent c6a03c46e6
commit 2aeee2a905
1 changed files with 18 additions and 18 deletions

View File

@ -129,23 +129,24 @@ class Keyring(object):
def _get_server_verify_key_impl(self, server_name, key_ids): def _get_server_verify_key_impl(self, server_name, key_ids):
keys = None keys = None
perspective_results = []
for perspective_name, perspective_keys in self.perspective_servers.items():
@defer.inlineCallbacks @defer.inlineCallbacks
def get_key(): def get_key(perspective_name, perspective_keys):
try: try:
result = yield self.get_server_verify_key_v2_indirect( result = yield self.get_server_verify_key_v2_indirect(
server_name, key_ids, perspective_name, perspective_keys server_name, key_ids, perspective_name, perspective_keys
) )
defer.returnValue(result) defer.returnValue(result)
except: except Exception as e:
logging.info( logging.info(
"Unable to getting key %r for %r from %r", "Unable to getting key %r for %r from %r: %s %s",
key_ids, server_name, perspective_name, key_ids, server_name, perspective_name,
type(e).__name__, str(e.message),
) )
perspective_results.append(get_key())
perspective_results = yield defer.gatherResults(perspective_results) perspective_results = yield defer.gatherResults([
get_key(name, keys)
for name, keys in self.perspective_servers.items()
])
for results in perspective_results: for results in perspective_results:
if results is not None: if results is not None:
@ -311,9 +312,8 @@ class Keyring(object):
time_now_ms = self.clock.time_msec() time_now_ms = self.clock.time_msec()
response_keys = {} response_keys = {}
verify_keys = {} verify_keys = {}
for key_id, key_data in response_json["verify_keys"].items(): for key_id, key_base64 in response_json["verify_keys"].items():
if is_signing_algorithm_supported(key_id): if is_signing_algorithm_supported(key_id):
key_base64 = key_data["key"]
key_bytes = decode_base64(key_base64) key_bytes = decode_base64(key_base64)
verify_key = decode_verify_key_bytes(key_id, key_bytes) verify_key = decode_verify_key_bytes(key_id, key_bytes)
verify_key.time_added = time_now_ms verify_key.time_added = time_now_ms