@@ -38,6 +38,17 @@ const (
38
38
wantAppName1 = "sign"
39
39
)
40
40
41
+ type constError string
42
+
43
+ func (err constError ) Error () string {
44
+ return string (err )
45
+ }
46
+
47
+ const (
48
+ ErrNoDevice = constError ("no TKey connected" )
49
+ ErrNotFirmware = constError ("not firmware" )
50
+ )
51
+
41
52
var le = log .New (os .Stderr , "" , 0 )
42
53
43
54
type TKey struct {
@@ -57,34 +68,34 @@ func NewTKey(devPath string, verbose bool) (*TKey, error) {
57
68
if devPath == "" {
58
69
devPath , err = util .DetectSerialPort (true )
59
70
if err != nil {
60
- return nil , fmt . Errorf ( "no device" )
71
+ return nil , ErrNoDevice
61
72
}
62
73
}
63
74
64
75
tk := tkeyclient .New ()
65
76
le .Printf ("Connecting to device on serial port %s ...\n " , devPath )
66
77
if err := tk .Connect (devPath ); err != nil {
67
- return nil , fmt .Errorf ("couldn't open device %s: %w\n " , devPath , err )
78
+ return nil , fmt .Errorf ("couldn't open device %s: %w" , devPath , err )
68
79
}
69
80
70
81
nameVer , err := tk .GetNameVersion ()
71
82
if err != nil {
72
83
le .Printf ("Please unplug the TKey and plug it in again to put it in firmware-mode.\n " )
73
84
le .Printf ("Either the device path (%s) is wrong, or the TKey is not in firmware-mode (already running an app).\n " , devPath )
74
- return nil , fmt . Errorf ( "not firmware" )
85
+ return nil , ErrNotFirmware
75
86
}
76
87
le .Printf ("Firmware name0:'%s' name1:'%s' version:%d\n " ,
77
88
nameVer .Name0 , nameVer .Name1 , nameVer .Version )
78
89
79
90
tkUDI , err := tk .GetUDI ()
80
91
if err != nil {
81
- return nil , fmt .Errorf ("GetUDI failed: %w\n " , err )
92
+ return nil , fmt .Errorf ("GetUDI failed: %w" , err )
82
93
}
83
94
84
95
var udi UDI
85
96
86
97
if err = udi .fromRawLE (tkUDI .RawBytes ()); err != nil {
87
- return nil , fmt .Errorf ("UDI fromRawLE failed: %w\n " , err )
98
+ return nil , fmt .Errorf ("UDI fromRawLE failed: %w" , err )
88
99
}
89
100
90
101
tkey := TKey {
@@ -114,7 +125,7 @@ func (t *TKey) LoadSigner(bin []byte) ([]byte, error) {
114
125
115
126
// No USS.
116
127
if err = t .client .LoadApp (bin , []byte {}); err != nil {
117
- return nil , fmt .Errorf ("Failed to load app: %w \n " , err )
128
+ return nil , fmt .Errorf ("%w " , err )
118
129
}
119
130
if t .verbose {
120
131
le .Printf ("App loaded.\n " )
@@ -124,7 +135,7 @@ func (t *TKey) LoadSigner(bin []byte) ([]byte, error) {
124
135
125
136
nameVer , err := t .signer .GetAppNameVersion ()
126
137
if err != nil {
127
- return nil , fmt .Errorf ("GetAppNameVersion: %w \n " , err )
138
+ return nil , fmt .Errorf ("%w " , err )
128
139
}
129
140
130
141
if t .verbose {
@@ -140,7 +151,7 @@ func (t *TKey) LoadSigner(bin []byte) ([]byte, error) {
140
151
141
152
pubKey , err := t .signer .GetPubkey ()
142
153
if err != nil {
143
- return nil , fmt .Errorf ("GetPubKey failed: %w \n " , err )
154
+ return nil , fmt .Errorf ("%w " , err )
144
155
}
145
156
146
157
return pubKey , nil
@@ -152,7 +163,7 @@ func (t *TKey) LoadSigner(bin []byte) ([]byte, error) {
152
163
func (t TKey ) Sign (message []byte ) ([]byte , error ) {
153
164
signature , err := t .signer .Sign (message )
154
165
if err != nil {
155
- return nil , fmt .Errorf ("Sign failed: %w" , err )
166
+ return nil , fmt .Errorf ("%w" , err )
156
167
}
157
168
158
169
return signature , nil
@@ -163,7 +174,7 @@ func (t TKey) Sign(message []byte) ([]byte, error) {
163
174
func (t TKey ) GetFirmwareHash (firmwareSize int ) ([]byte , error ) {
164
175
fwHash , err := t .signer .GetFWDigest (firmwareSize )
165
176
if err != nil {
166
- return nil , fmt .Errorf ("GetFirmwareHash failed: %w" , err )
177
+ return nil , fmt .Errorf ("%w" , err )
167
178
}
168
179
169
180
return fwHash , nil
0 commit comments