polhenarejos / pico-fido

Transforming a Raspberry Pico into a FIDO key
GNU General Public License v3.0
206 stars 24 forks source link

Version 5.6+ not working with lbuchs/WebAuthn library #43

Open lphooge opened 1 month ago

lphooge commented 1 month ago

For testing I ordered both a pimoroni tiny2040 and a waveshare Rp2040 zero.

After accidentially flashing version 2.2 to the tiny and the latest 5.8 to the waveshare, the tiny worked on my app, the waveshare did not (LED flashing but no function).

After further inspection I found its not tied to the hardware, both behave the same when flashed to the same version:

I have not yet found out what exactly triggers the different behavior, but suspect it to be in some kind tied to the pin function.

I did try nuking the flash, this did reset the "priming" via webauthn.io but did not fix the overall issue.

polhenarejos commented 1 month ago

To summarize, it seems version 5.8 does not work with https://webauthn.lubu.ch/_test/client.html but it works with https://webauthn.io/ ?

PIN is management is performed by the current client, not by the Pico Fido. So, if it is erratic, it could be a client problem, specially if it works in one web but not in another. I'll debug with lubu's one.

In the meantime, can you try with https://demo.yubico.com/webauthn-technical/registration ?

polhenarejos commented 1 month ago

I tested https://webauthn.lubu.ch/_test/client.html and it works smoothly. The only thing I saw is the Pico device has to be already set PIN. If it is a fresh new installation, you need first to set a PIN through webauthn.io and then it will work with lubu.ch, even if PIN is discouraged or required.