linux-credentials / linux-credentials/libwebauthn

Support multiple NFC-devices and backends

Open
#154 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement transport: nfc
Dominant language
Rust
Stars
579
Forks
27
Avg merge
4d 6h
Merged PRs (30d)
1

Description

With #152 we'll get NFC support, but this PR has currently the restriction to return only the first device that was found.

There are two reasons for this:

  1. Making a device blink and wait for user-interaction is not possible with NFC, so we can't run the same flow we do for USB, when multiple devices are found. There needs to be a new flow established to select multiple found devices.
  2. We currently support two backends for NFC detection: pcsc and libnfc. libnfc CAN be compiled with pcsc-support, but doesn't have to be. If it is compiled with pcsc-support, we will find each pcsc-discoverable device twice, if libwebauthn was compiled with support for both backends. Since we can't know if libnfc is compiled with pcsc-support or not, it would be advisable to always use both backends to maximize
    chances of finding a device (this can also change underneath us, if system-libs are updated and libnfc adds/removes pcsc-support) . If we want to return more than one NFC-device in the future, we would need to look into de-duplicating devices found by both pcsc and libnfc.

These two problems would need to be solved, if we ever want to return more than one NFC-device.

For now, we stick with returning only one device, thus avoiding both problems.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the NFC support introduced by #152 and the existing pcsc and libnfc discovery paths. Define how users select multiple NFC devices and how devices discovered by both backends are de-duplicated. Done means both backends can be used without duplicate devices and multiple-device selection has a clear flow.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.