device: verify keepkey constraints

nistp521
Roman Zeyde 8 years ago
parent 5e93d97be3
commit 2eab2a152c
No known key found for this signature in database
GPG Key ID: 87CAE5FA46917CBB

@ -1,6 +1,20 @@
"""KeepKey-related code (see https://www.keepkey.com/)."""
from . import interface, trezor
from . import trezor
from .. import formats
def _verify_support(identity, ecdh):
"""Make sure the device supports given configuration."""
protocol = identity.identity_dict['proto']
if protocol not in {'ssh'}:
raise NotImplementedError(
'Unsupported protocol: {}'.format(protocol))
if ecdh:
raise NotImplementedError('No support for ECDH')
if identity.curve_name not in {formats.CURVE_NIST256}:
raise NotImplementedError(
'Unsupported elliptic curve: {}'.format(identity.curve_name))
class KeepKey(trezor.Trezor):
@ -10,7 +24,11 @@ class KeepKey(trezor.Trezor):
required_version = '>=1.0.4'
def pubkey(self, identity, ecdh=False):
"""Return public key."""
_verify_support(identity, ecdh)
return trezor.Trezor.pubkey(self, identity=identity, ecdh=ecdh)
def ecdh(self, identity, pubkey):
"""No support for ECDH in KeepKey firmware."""
msg = 'KeepKey does not support ECDH'
raise interface.NotFoundError(msg)
_verify_support(identity, ecdh=True)

Loading…
Cancel
Save