accounts:smartcard wallet without the dependency on libpcsclite (#19273)
* accounts, core, internal, node: Add support for smartcard wallets * accounts, internal: Changes in response to review * vendor: pull in missing go-echd library * accounts/scwallet, console: user friendly card opening * accounts/scwallet: ordered wallets, tighter events, derivation logs * accounts, console: frendly card errors, support pin unblock * accounts/scwallet: fix crypto API change * accounts/scwallet: rebase and update * Fix some linter issues * Remove the direct dependency on libpcsclite Instead, use a go library that communicates with pcscd over a socket. Also update the changes introduced by @gravityblast since this PR's inception * Temporary fix to the ADBU status call * fix wallet status update This is a temporary fix, better checks need to be performed once the whole process has been validated. * Fix key derivation * Add some documentation * Update a comment to reflect the workings of the updated system * Vendor keycard-go/derivationpath * Formatting fixes * Add instructions on how to install the card * Achieve full transaction signature+sending * PK derivation has to be supported by the card * Fix linter issues * Upgrade to keycard app v2.1.1 * Set gballet as codeowner of the smartcard wallet dir * fix unnecessary condition linter warning * refuse to overwrite the master key of a previously initialized card * refresh the account list when initializing the card * Update the card preparation instructions based on review feedback * 'sanitize' JSON input Co-Authored-By:gballet <gballet@gmail.com> * Apply suggestions from code review Co-Authored-By:
gballet <gballet@gmail.com> * fix a serialization error * more review feedback * More review feedback * Can now specify the number of empty accounts to derive * Fix rebase error: include norm package * Update bip-39 ref and remove ebfe/scard from vendor * Add missing dependency
Showing
- .github/CODEOWNERS 1 addition, 0 deletions.github/CODEOWNERS
- accounts/hd.go 17 additions, 0 deletionsaccounts/hd.go
- accounts/scwallet/README.md 69 additions, 0 deletionsaccounts/scwallet/README.md
- accounts/scwallet/apdu.go 87 additions, 0 deletionsaccounts/scwallet/apdu.go
- accounts/scwallet/hub.go 302 additions, 0 deletionsaccounts/scwallet/hub.go
- accounts/scwallet/securechannel.go 346 additions, 0 deletionsaccounts/scwallet/securechannel.go
- accounts/scwallet/wallet.go 1074 additions, 0 deletionsaccounts/scwallet/wallet.go
- accounts/sort.go 31 additions, 0 deletionsaccounts/sort.go
- console/bridge.go 64 additions, 9 deletionsconsole/bridge.go
- internal/ethapi/api.go 44 additions, 0 deletionsinternal/ethapi/api.go
- internal/web3ext/web3ext.go 10 additions, 0 deletionsinternal/web3ext/web3ext.go
- node/config.go 7 additions, 0 deletionsnode/config.go
- vendor/github.com/gballet/go-libpcsclite/LICENSE 29 additions, 0 deletionsvendor/github.com/gballet/go-libpcsclite/LICENSE
- vendor/github.com/gballet/go-libpcsclite/README.md 53 additions, 0 deletionsvendor/github.com/gballet/go-libpcsclite/README.md
- vendor/github.com/gballet/go-libpcsclite/doc.go 99 additions, 0 deletionsvendor/github.com/gballet/go-libpcsclite/doc.go
- vendor/github.com/gballet/go-libpcsclite/go.mod 1 addition, 0 deletionsvendor/github.com/gballet/go-libpcsclite/go.mod
- vendor/github.com/gballet/go-libpcsclite/msg.go 78 additions, 0 deletionsvendor/github.com/gballet/go-libpcsclite/msg.go
- vendor/github.com/gballet/go-libpcsclite/winscard.go 389 additions, 0 deletionsvendor/github.com/gballet/go-libpcsclite/winscard.go
- vendor/github.com/status-im/keycard-go/LICENSE.md 356 additions, 0 deletionsvendor/github.com/status-im/keycard-go/LICENSE.md
- vendor/github.com/status-im/keycard-go/derivationpath/decoder.go 214 additions, 0 deletions...github.com/status-im/keycard-go/derivationpath/decoder.go
Loading
Please register or sign in to comment