Add virtual authenticator support for CMTG keys#2445
Open
nsatragno wants to merge 1 commit into
Open
Conversation
nsatragno
force-pushed
the
11_cmtg_testing
branch
3 times, most recently
from
July 13, 2026 18:16
f699eb1 to
0f31a9a
Compare
nsatragno
marked this pull request as ready for review
July 13, 2026 18:24
nsatragno
force-pushed
the
11_cmtg_testing
branch
from
July 13, 2026 18:53
0f31a9a to
d56931c
Compare
nsatragno
force-pushed
the
11_cmtg_testing
branch
2 times, most recently
from
July 14, 2026 14:50
46b7d3b to
170493a
Compare
timcappalli
reviewed
Jul 17, 2026
Comment on lines
+8019
to
+8033
| :: The <dfn abstract-op>locate the existing Credential Manager Trust Group Key</dfn> operation | ||
| returns the [=Credential Manager Trust Group Key=] associated with the current | ||
| [=public key credential source=], or `null` if none exists. | ||
|
|
||
| 1. If the [=public key credential source=] is not [=backup eligible=], | ||
| terminate these processing steps as this extension only applies to [=multi-device credentials=]. | ||
| The <dfn abstract-op>create a Credential Manager Trust Group Key</dfn> operation | ||
| takes a public key algorithm identifier, generates a new | ||
| [=Credential Manager Trust Group Key=] for the current | ||
| [=public key credential source=], and returns the generated key. | ||
|
|
||
| 1. If a [=Credential Manager Trust Group Key=] does not already exist for this ([=public key credential source/id|Credential ID=], | ||
| [=public key credential source/rpId|RP ID=], [=public key credential source/userHandle|User Handle=]) tuple in the [=authenticator=]/[=credential manager=], | ||
| create it using the same public key algorithm as that used by the [=user credential=]'s [=credential key pair=], | ||
| otherwise locate the existing [=Credential Manager Trust Group Key=]. | ||
| For both [=authenticatorMakeCredential=] and [=authenticatorGetAssertion=] operations: | ||
| 1. Create or select the [=public key credential source=] as usual (see [[#sctn-op-make-cred]], | ||
| or [[#sctn-op-get-assertion]] as appropriate). | ||
|
|
||
| 1. Let |cmtgPublicKey| be the newly created or existing [=Credential Manager Trust Group Key=], | ||
| in COSE_Key format [=credentialPublicKey|in the same fashion as for the user credential's credentialPublicKey=]. | ||
| 1. If the [=public key credential source=] is not [=backup eligible=], | ||
| terminate these processing steps as this extension only applies to [=multi-device credentials=]. |
Member
There was a problem hiding this comment.
Should we make these changes in a separate PR? These don't seem to be related to the virtual authenticator.
Member
Author
There was a problem hiding this comment.
We could. These changes aren't supposed to be functional, they're there to make it easier to specify how the virtual authenticator retrieves and stores CMTGs.
Member
Author
There was a problem hiding this comment.
To take a stronger stance here: these changes make it so we can cleanly inject behaviour here from the virtual authenticator. I would prefer to keep them here, since the changes don't stand on their own (but I could go either way if you thought it was important to move them to a new PR).
timcappalli
reviewed
Jul 17, 2026
nsatragno
force-pushed
the
11_cmtg_testing
branch
from
July 20, 2026 18:19
170493a to
0e3653d
Compare
This change adds virtual authenticator support for Credential Manager Trust Group (CMTG) keys.
nsatragno
force-pushed
the
11_cmtg_testing
branch
from
July 20, 2026 18:23
0e3653d to
c45b834
Compare
brave-builds
pushed a commit
to brave/chromium
that referenced
this pull request
Jul 21, 2026
Expose Credential Manager Trust Group Keys related Virtual Authenticator methods on the content layer and have the generate_cmtg_key_on_next_operation flag be per credential instead of per authenticator. Also, process and filter the cmtgKey extension at the CTAP level. This will be used in the follow-up to support a new CDP API, following w3c/webauthn#2445. TAG=agy CONV=00274877-c5d3-46c3-a466-9346b48eefc4 Bug: 485888879 Change-Id: I08be13d8e81438894044becfe4265aea3cf68a5b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8131079 Reviewed-by: Ken Buchanan <kenrb@chromium.org> Auto-Submit: Nina Satragno <nsatragno@chromium.org> Commit-Queue: Ken Buchanan <kenrb@chromium.org> Cr-Commit-Position: refs/heads/main@{#1665547}
brave-builds
pushed a commit
to brave/chromium
that referenced
this pull request
Jul 21, 2026
Add the hasCmtgKey option to the WebAuthn.addVirtualAuthenticator CDP command. `hasCmtgKey` enables Credential Manager Trust Group Keys support for WebAuthn virtual authenticators. This is intended to be used by both devtools and webdriver. See w3c/webauthn#2445 TAG=agy CONV=00274877-c5d3-46c3-a466-9346b48eefc4 Bug: 485888879 Change-Id: I7da630ac0cd4decd9d5fab6079cfa84ccf1751b9 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8132258 Reviewed-by: Andrey Kosyakov <caseq@chromium.org> Auto-Submit: Nina Satragno <nsatragno@chromium.org> Commit-Queue: Andrey Kosyakov <caseq@chromium.org> Cr-Commit-Position: refs/heads/main@{#1665615}
brave-builds
pushed a commit
to brave/chromium
that referenced
this pull request
Jul 21, 2026
Expose Credential Manager Trust Group (CMTG) Key virtual authenticator properties in WebAuthn.getCredential and WebAuthn.getCredentials. This is intended to be used by both devtools and webdriver. See w3c/webauthn#2445 TAG=agy CONV=00274877-c5d3-46c3-a466-9346b48eefc4 Bug: 485888879 Change-Id: Ia5009bbdec2363d7b8c560124d062b7125a81f18 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8131780 Auto-Submit: Nina Satragno <nsatragno@chromium.org> Reviewed-by: Andrey Kosyakov <caseq@chromium.org> Commit-Queue: Andrey Kosyakov <caseq@chromium.org> Cr-Commit-Position: refs/heads/main@{#1665620}
beckysiegel
pushed a commit
to chromium/chromium
that referenced
this pull request
Jul 22, 2026
Allow injecting credentials with pre-configured Credential Manager Trust Group (CMTG) keys via WebAuthn.addCredential CDP command. This is intended to be used by both devtools and webdriver. See w3c/webauthn#2445 TAG=agy CONV=00274877-c5d3-46c3-a466-9346b48eefc4 Bug: 485888879 Change-Id: I56e4be1ebb3c8b44dd2cb3a974a03ffd857cf498 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8132417 Reviewed-by: Andrey Kosyakov <caseq@chromium.org> Commit-Queue: Nina Satragno <nsatragno@chromium.org> Cr-Commit-Position: refs/heads/main@{#1666302}
beckysiegel
pushed a commit
to chromium/chromium
that referenced
this pull request
Jul 22, 2026
Allow setting CMTG properties on credentials via the WebAuthn.setCredentialProperties CDP command. This is intended to be used by both devtools and webdriver. See w3c/webauthn#2445 TAG=agy CONV=00274877-c5d3-46c3-a466-9346b48eefc4 Bug: 485888879 Change-Id: I5dcecf1e6e2a760f8130fdddb5c997e2a575bc5f Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8131762 Commit-Queue: Nina Satragno <nsatragno@chromium.org> Reviewed-by: Andrey Kosyakov <caseq@chromium.org> Cr-Commit-Position: refs/heads/main@{#1666311}
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds virtual authenticator support for Credential Manager Trust Group (CMTG) keys.
This change extends virtual authenticator credentials to support a list of CMTG keys and an index to the "active" key. The key index may be used to switch which key is returned in an assertion. You can also set a new flag,
generateCmtgKeyOnNextOperation, to return a new credential. This should allow web developers to test different scenarios, and browser developers to write web platform tests.The new parameters are reflected in the add credential, get credentials, and set credential properties commands.
Finally, the change adds a new webdriver capability to indicate and request support for this feature.
The following tasks have been completed:
Implementation commitment:
Closes #2395
Preview | Diff