|
|
@ -18,15 +18,17 @@ class Client(object):
|
|
|
|
"""Connect to hardware device."""
|
|
|
|
"""Connect to hardware device."""
|
|
|
|
self.device = device
|
|
|
|
self.device = device
|
|
|
|
|
|
|
|
|
|
|
|
def get_public_key(self, identity):
|
|
|
|
def export_public_keys(self, identities):
|
|
|
|
"""Get SSH public key from the device."""
|
|
|
|
"""Export SSH public keys from the device."""
|
|
|
|
|
|
|
|
public_keys = []
|
|
|
|
with self.device:
|
|
|
|
with self.device:
|
|
|
|
pubkey = self.device.pubkey(identity)
|
|
|
|
for i in identities:
|
|
|
|
|
|
|
|
pubkey = self.device.pubkey(identity=i)
|
|
|
|
vk = formats.decompress_pubkey(pubkey=pubkey,
|
|
|
|
vk = formats.decompress_pubkey(pubkey=pubkey,
|
|
|
|
curve_name=identity.curve_name)
|
|
|
|
curve_name=i.curve_name)
|
|
|
|
return formats.export_public_key(vk=vk,
|
|
|
|
public_keys.append(formats.export_public_key(vk=vk,
|
|
|
|
label=str(identity))
|
|
|
|
label=str(i)))
|
|
|
|
|
|
|
|
return public_keys
|
|
|
|
|
|
|
|
|
|
|
|
def sign_ssh_challenge(self, blob, identity):
|
|
|
|
def sign_ssh_challenge(self, blob, identity):
|
|
|
|
"""Sign given blob using a private key on the device."""
|
|
|
|
"""Sign given blob using a private key on the device."""
|
|
|
|