New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tapsigner #598
Tapsigner #598
Conversation
scgbckbone
commented
Apr 21, 2022
- add Tapsigner to HWI
- add Tapsigner simulator
- testing
- adjust README.md in tests
Please rebase on top of current master to remove the merge commit. |
will do squash and rebase after this is reviewed and ready to go - I assume this will need some more commits (build is failing + implementation of review comments) |
8265d6e
to
bc5efcf
Compare
Few notes here. We use password field for CVC, which is something like pin code but you have to provide it for every auth command. Therefore it is not suitable for us to use PIN (with sendpin/promptpin) as PIN does not unlock the card for some amount of time as with Coldcard or Trezor, instead we would need to use sendpin before every command which is not very practical to do.
Any review is greatly appreciated. |
Please rebase now that CI is fixed. |
rebased on current master |
1893ab4
to
f4b83b2
Compare
d12ac90
to
5fd892b
Compare
updated |
Also, rebase for CI to be not as dead. |
1a0c197
to
cb2edad
Compare
@achow101 rebased and fixed - will squash those commits after - I think it is easier for you to review changes unsquashed |
|
af12d16
to
52aa685
Compare
52aa685f95b01a9480c0fb07acb7e433dc98ef2a Moved Tapsigner and its dependencies to extras. This aims to partly alleviate your concerns with regards to In this revision, however I still kept Tapsigner in binary distributions as I was not sure how "bit concerned" you are. I can remove Tapsigner from |
|
I don't understand Python dependencies that well. But if a lot a extra stuff is needed for NFC, can we (initially) have the user install those seperately and not fail if they're missing? |
3b51e7c
to
5009e9e
Compare
This is already done with regards to python dependencies (tapsigner dependencies are part of extras). Namely My question is whether you would accept additional dependencies ( |
I hadn't thought about binaries. At some point I think hardware wallet companies should make their own binaries that are compatible with the HWI interface. However, that's not very practical right now, as e.g. Bitcoin Core won't let you configure a different
This might be the best option for now. Using NFC in a desktop environment, which afaik is where HWI is mostly used, is still a bit niche (though I plan to try it). We could also ship separate binaries that include NFC support, if those are not too painful to generate automatically. Another option might be to include the dependenceis, but leave the functionality disabled until the user calls |
Fair points. I will remove NFC dependencies from binaries and therefore |
@Sjors I use HID Omnikey 5022 CL (if you want to play with coinkite NFC cards on desktop) |
I ordered the ACR122U because a guy on Reddit said so. |
his reditt post is for Seems like the one you choose coinkite lists as "not recommended" here https://github.com/coinkite/coinkite-tap-proto/blob/master/README.md#requirements Check coinkite store https://store.coinkite.com/store/category/accessories correct readers are available and there is also 25% discount today |
Oh man, why are there multiple NFC libraries for Linux? |
Wow, so Coldcard and Tapsigner use incompatible NFC standards? |
1073c18
to
af5f8dc
Compare
…fault remove tapsigner from binary distributions handle tests to not fail
35f5874
to
ce304f1
Compare
Tapsigner is now completely optional and not included in binary distributions. Tests are handled to not fail if extras are not installed. |
I've spent a while thinking on this and I've come to the conclusion that NFC cards don't really fit into HWI's expected workflow. With USB devices,there is a persistent connection between the device and the computer by virtue of having to plug it in. However with NFC, the connection is really ephemeral with the user expecting to be prompted to tap the card to perform an action. Using a NFC card with HWI would require having to but the card on a reader as if it were plugged in, but this is not how NFC is generally used. HWI is often used in a way where the type of device being used is unknown at the time of command invocation. Users either call Additionally, I question whether NFC cards would be used with HWI. HWI is a software targeted at desktop and laptop computers. Unless the user purchases a NFC reader, desktops and laptops are unlikely to be able to even interface with the card. ISTM the vast majority of users will only be able to use NFC from their phones, but HWI isn't expected to work on those devices. So I'm not sure that including Tapsigner support is worth the additional maintenance burden it will incur. tl;dr I don't think Tapsigner is a good fit for HWI. |
Yes, was unavoidable. The hardware capabilities and the software stack are too far apart. |