trezor: explicitly specify SSH curve

nistp521
Roman Zeyde 9 years ago
parent 3c1c1d0e0c
commit ef56779461

@ -29,6 +29,8 @@ class TrezorLibrary(object):
class Client(object): class Client(object):
curve_name = 'nist256p1'
def __init__(self, factory=TrezorLibrary): def __init__(self, factory=TrezorLibrary):
self.factory = factory self.factory = factory
self.client = self.factory.client() self.client = self.factory.client()
@ -51,7 +53,7 @@ class Client(object):
def get_public_key(self, label): def get_public_key(self, label):
addr = _get_address(self.factory.identity(label)) addr = _get_address(self.factory.identity(label))
log.info('getting %r SSH public key from Trezor...', label) log.info('getting %r SSH public key from Trezor...', label)
node = self.client.get_public_node(addr) node = self.client.get_public_node(addr, self.curve_name)
return node.node.public_key return node.node.public_key
def sign_ssh_challenge(self, label, blob): def sign_ssh_challenge(self, label, blob):
@ -63,7 +65,8 @@ class Client(object):
request, label) request, label)
s = self.client.sign_identity(identity=ident, s = self.client.sign_identity(identity=ident,
challenge_hidden=blob, challenge_hidden=blob,
challenge_visual=request) challenge_visual=request,
ecdsa_curve_name=self.curve_name)
assert len(s.signature) == 65 assert len(s.signature) == 65
assert s.signature[0] == b'\x00' assert s.signature[0] == b'\x00'

Loading…
Cancel
Save