1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
Patch-Source: https://github.com/solokeys/solo1-cli/pull/152
From 02bb791f3c32c8f93a3f5bc4d256a5a6c77d7528 Mon Sep 17 00:00:00 2001
From: Kendrick Shaw <kms15@case.edu>
Date: Thu, 9 Jun 2022 23:16:43 +0000
Subject: [PATCH] Update to fido2 library 1.0 API
The fido2 library has changed the names of the CTAP1 class to Ctap1 and
the CTAP2 class to Ctap2; this commit updates the solo1-cli code to use
the new names.
---
solo/devices/base.py | 10 +++++-----
solo/devices/solo_v1.py | 8 ++++----
solo/solotool.py | 4 ++--
3 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/solo/devices/base.py b/solo/devices/base.py
index 2e030f4..6afe01a 100644
--- a/solo/devices/base.py
+++ b/solo/devices/base.py
@@ -3,7 +3,7 @@
from cryptography import x509
from cryptography.hazmat.backends import default_backend
from fido2.attestation import Attestation
-from fido2.ctap2 import CTAP2, CredentialManagement
+from fido2.ctap2 import Ctap2, CredentialManagement
from fido2.hid import CTAPHID
from fido2.utils import hmac_sha256
from fido2.webauthn import PublicKeyCredentialCreationOptions
@@ -76,7 +76,7 @@ def ping(self, data="pong"):
def reset(
self,
):
- CTAP2(self.get_current_hid_device()).reset()
+ Ctap2(self.get_current_hid_device()).reset()
def change_pin(self, old_pin, new_pin):
client = self.get_current_fido_client()
@@ -114,7 +114,7 @@ def make_credential(self, pin=None):
def cred_mgmt(self, pin):
client = self.get_current_fido_client()
token = client.client_pin.get_pin_token(pin)
- ctap2 = CTAP2(self.get_current_hid_device())
+ ctap2 = Ctap2(self.get_current_hid_device())
return CredentialManagement(ctap2, client.client_pin.protocol, token)
def enter_solo_bootloader(
@@ -137,11 +137,11 @@ def is_solo_bootloader(
pass
def program_kbd(self, cmd):
- ctap2 = CTAP2(self.get_current_hid_device())
+ ctap2 = Ctap2(self.get_current_hid_device())
return ctap2.send_cbor(0x51, cmd)
def sign_hash(self, credential_id, dgst, pin):
- ctap2 = CTAP2(self.get_current_hid_device())
+ ctap2 = Ctap2(self.get_current_hid_device())
client = self.get_current_fido_client()
if pin:
pin_token = client.client_pin.get_pin_token(pin)
diff --git a/solo/devices/solo_v1.py b/solo/devices/solo_v1.py
index 0c4328f..fd64c22 100644
--- a/solo/devices/solo_v1.py
+++ b/solo/devices/solo_v1.py
@@ -8,8 +8,8 @@
from fido2.client import Fido2Client
from fido2.ctap import CtapError
-from fido2.ctap1 import CTAP1
-from fido2.ctap2 import CTAP2
+from fido2.ctap1 import Ctap1
+from fido2.ctap2 import Ctap2
from fido2.hid import CTAPHID, CtapHidDevice
from intelhex import IntelHex
@@ -64,9 +64,9 @@ def find_device(self, dev=None, solo_serial=None):
dev = devices[0]
self.dev = dev
- self.ctap1 = CTAP1(dev)
+ self.ctap1 = Ctap1(dev)
try:
- self.ctap2 = CTAP2(dev)
+ self.ctap2 = Ctap2(dev)
except CtapError:
self.ctap2 = None
diff --git a/solo/solotool.py b/solo/solotool.py
index ca01454..9c4cddb 100644
--- a/solo/solotool.py
+++ b/solo/solotool.py
@@ -32,8 +32,8 @@
from fido2.attestation import Attestation
from fido2.client import ClientError, Fido2Client
from fido2.ctap import CtapError
-from fido2.ctap1 import CTAP1, ApduError
-from fido2.ctap2 import CTAP2
+from fido2.ctap1 import Ctap1, ApduError
+from fido2.ctap2 import Ctap2
from fido2.hid import CTAPHID, CtapHidDevice
from intelhex import IntelHex
|