Skip to content

CTAP 2.3 (rebased)#60

Open
0x0ece wants to merge 22 commits into
trussed-dev:mainfrom
0x0ece:0x0ece/ctap-rebased
Open

CTAP 2.3 (rebased)#60
0x0ece wants to merge 22 commits into
trussed-dev:mainfrom
0x0ece:0x0ece/ctap-rebased

Conversation

@0x0ece
Copy link
Copy Markdown
Contributor

@0x0ece 0x0ece commented May 25, 2026

No description provided.

@0x0ece 0x0ece force-pushed the 0x0ece/ctap-rebased branch from be809a1 to ce6c884 Compare May 25, 2026 22:49
Comment thread src/ctap2.rs
Comment on lines +702 to +706
// CTAP 2.3 §7.7: replace the legacy 10-second boot window with a
// continuous ≥5 s "long touch". The runner is responsible for timing
// the press and surfacing `consent::Level::Strong` here when the user
// holds the button long enough; anything weaker results in
// `OperationDenied`.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where do you read that the 10-second boot window is unnecessary with the long touch? § 6.6 still contains the requirement:

Additionally:
[…]

  • In case of authenticators with no display, request MUST have come to the authenticator within 10 seconds of powering up of the authenticator.

[…]
If all conditions are met, the authenticator returns CTAP2_OK. … If the request comes after 10 seconds of powering up, the authenticator returns CTAP2_ERR_NOT_ALLOWED.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also we would like to stick with the old behavior at the moment so this should be configurable.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I just interpreted as "the spec finally says how to do it, so we can remove the custom way", but I don't have a strong opinion.

To clarify, you'd like to have both the 10s boot AND the long press as 2 paths? (basically long press is ctap23, and in addition we have the 10s boot?) If that's the case we can keep it, no need to complicate our lives and have configurations imo.

If you mean you'd like to have only the 10s, and not have the long press at all, then we should prob try out the integration tests.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’m not sure what you mean with the “custom way”. CTAP 2.1 already specified the 10 second window after boot in § 6.6. My understanding is that we should always have the 10 second window to be compliant with CTAP 2.3.

For the NK3, I’d like to stick with the normal touch confirmation without the option to switch to long touch for the moment. So my suggestion would be to have a Config field that decides whether a short or a long touch is used (and thus whether the enableLongTouch command is available). Optionally, we could also make it configurable whether the default is short or long touch if long touch is supported, but I’m also fine with only using the long touch if it is enabled.

This was referenced May 28, 2026
@robin-nitrokey
Copy link
Copy Markdown
Member

To do:

  • long-touch reset
  • test optimization
  • stack optimization
  • ML-DSA

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants