From d712509a4ea43d90fccece7094777b12815befa8 Mon Sep 17 00:00:00 2001 From: Roman Zeyde Date: Wed, 17 Feb 2016 15:04:10 +0200 Subject: [PATCH] client: show current time instead of identity.path --- trezor_agent/__main__.py | 4 +++- trezor_agent/client.py | 3 +-- trezor_agent/tests/test_client.py | 7 +++++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/trezor_agent/__main__.py b/trezor_agent/__main__.py index 82c7df7..ab86129 100644 --- a/trezor_agent/__main__.py +++ b/trezor_agent/__main__.py @@ -3,6 +3,7 @@ import functools import logging import os import sys +import time from . import client, formats, protocol, server @@ -57,7 +58,8 @@ def setup_logging(verbosity): def ssh_sign(conn, label, blob): - return conn.sign_ssh_challenge(label=label, blob=blob) + now = time.strftime('%Y-%m-%d %H:%M:%S') + return conn.sign_ssh_challenge(label=label, blob=blob, visual=now) def run_agent(client_factory): diff --git a/trezor_agent/client.py b/trezor_agent/client.py index 249c066..61480ed 100644 --- a/trezor_agent/client.py +++ b/trezor_agent/client.py @@ -47,7 +47,7 @@ class Client(object): vk = formats.decompress_pubkey(pubkey=pubkey, curve_name=self.curve) return formats.export_public_key(vk=vk, label=label) - def sign_ssh_challenge(self, label, blob): + def sign_ssh_challenge(self, label, blob, visual=''): identity = self.get_identity(label=label) msg = _parse_ssh_blob(blob) log.debug('%s: user %r via %r (%r)', @@ -58,7 +58,6 @@ class Client(object): log.info('please confirm user "%s" login to "%s" using %s...', msg['user'], label, self.device_name) - visual = identity.path # not signed when proto='ssh' result = self.client.sign_identity(identity=identity, challenge_hidden=blob, challenge_visual=visual, diff --git a/trezor_agent/tests/test_client.py b/trezor_agent/tests/test_client.py index d4b56fa..ec5cf97 100644 --- a/trezor_agent/tests/test_client.py +++ b/trezor_agent/tests/test_client.py @@ -85,8 +85,10 @@ def test_ssh_agent(): def ssh_sign_identity(identity, challenge_hidden, challenge_visual, ecdsa_curve_name): + assert (client.identity_to_string(identity) == + client.identity_to_string(ident)) assert challenge_hidden == BLOB - assert challenge_visual == identity.path + assert challenge_visual == 'VISUAL' assert ecdsa_curve_name == b'nist256p1' result = mock.Mock(spec=[]) @@ -95,7 +97,8 @@ def test_ssh_agent(): return result c.client.sign_identity = ssh_sign_identity - signature = c.sign_ssh_challenge(label=label, blob=BLOB) + signature = c.sign_ssh_challenge(label=label, blob=BLOB, + visual='VISUAL') key = formats.import_public_key(PUBKEY_TEXT) serialized_sig = key['verifier'](sig=signature, msg=BLOB)