The first patch splits StateMachine::init_and_select into distinct init and select stages. It adds an auto_select hint to the select stage that can be used to skip device selection when the caller can determine that a particular device is suitable for the request.
The second patch uses the auto_select hint when we find acceptable credentials on a device through silent discovery. This resolves Bug 1451111
The third patch uses silent discovery to determine if there are acceptable (U2F) credentials on the device that require the use of the AppID extension. This resolves #269 and Bug 1846836.
I also added a -a flag to the ctap2 example which causes it to use an alternate RP ID. (This is added in the second patch but is used to test the third patch's behavior).
The first patch splits
StateMachine::init_and_select
into distinctinit
andselect
stages. It adds anauto_select
hint to theselect
stage that can be used to skip device selection when the caller can determine that a particular device is suitable for the request.The second patch uses the
auto_select
hint when we find acceptable credentials on a device through silent discovery. This resolves Bug 1451111The third patch uses silent discovery to determine if there are acceptable (U2F) credentials on the device that require the use of the AppID extension. This resolves #269 and Bug 1846836.
I also added a
-a
flag to the ctap2 example which causes it to use an alternate RP ID. (This is added in the second patch but is used to test the third patch's behavior).