Open micolous opened 1 year ago
Windows 11's built-in caBLE support uses a QR code with square pixels and a logo over the centre (white square with black logo, similar to Chrome). These are also unreliable to scan from screenshots (well, a HDMI capture device), and the only way around it is to re-roll the QR code (by aborting the caBLE transaction).
The logos on Chrome, iOS and Windows are all of a similar size.
I suspect the design of the logo itself is triggering the issue, but as before, using other scanners has been reliable.
This issue is free to pick up if you're interested; this is mainly a brain dump to track things. This work is part of #259.
The caBLE authenticator implementation example currently needs a may to get
FIDO:/
URLs from caBLE QR codes into it. It currently has two mechanisms to supply this:bardecoder
)I like having the scanning feature available, because it made things pretty convenient during testing and development. My workflow there was to:
This is currently about 80% reliable after manual cropping (which I ideally don't want to do!). There's currently a hack in it to make it accept QR codes from iOS initiators more reliably:
https://github.com/kanidm/webauthn-rs/blob/e9ebff3123263073c3668228fa088f007f3fa555/webauthn-authenticator-rs/examples/cable_tunnel/core.rs#L173-L174
Some observations:
I'm able to reliably scan these QR codes with
zxing
and Google Camera on Android, and with iOS camera ~100% reliably; and that's taking a picture of the screen, rather than the pixel-perfect conditions of a screenshot. They can cheat a little by using multiple frames in the case of a scan failure, but the process feels very responsive.Work ideas here include:
bardecoder
to figure out if there's ways that algorithm can be improvedI'd like to be able to use a device's webcam to scan QR codes in this demo, but this can't really happen until the QR code scanning is more reliable and faster.