-
Notifications
You must be signed in to change notification settings - Fork 1.3k
feat: add WebAuthn virtual authenticator tools #823
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
5f35101
ce3a0ed
300e963
248f408
d5f5a0d
5b6939e
c822495
6f43b95
ba7e900
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -18,9 +18,16 @@ | |
| - [`new_page`](#new_page) | ||
| - [`select_page`](#select_page) | ||
| - [`wait_for`](#wait_for) | ||
| - **[Emulation](#emulation)** (2 tools) | ||
| - **[Emulation](#emulation)** (9 tools) | ||
| - [`emulate`](#emulate) | ||
| - [`resize_page`](#resize_page) | ||
| - [`webauthn_add_authenticator`](#webauthn_add_authenticator) | ||
| - [`webauthn_add_credential`](#webauthn_add_credential) | ||
| - [`webauthn_clear_credentials`](#webauthn_clear_credentials) | ||
| - [`webauthn_enable`](#webauthn_enable) | ||
| - [`webauthn_get_credentials`](#webauthn_get_credentials) | ||
| - [`webauthn_remove_authenticator`](#webauthn_remove_authenticator) | ||
| - [`webauthn_set_user_verified`](#webauthn_set_user_verified) | ||
|
Comment on lines
+24
to
+30
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It looks like we could use a single tool |
||
| - **[Performance](#performance)** (3 tools) | ||
| - [`performance_analyze_insight`](#performance_analyze_insight) | ||
| - [`performance_start_trace`](#performance_start_trace) | ||
|
|
@@ -223,6 +230,85 @@ | |
|
|
||
| --- | ||
|
|
||
| ### `webauthn_add_authenticator` | ||
|
|
||
| **Description:** Add a virtual WebAuthn authenticator. | ||
|
|
||
| **Parameters:** | ||
|
|
||
| - **protocol** (enum: "u2f", "ctap2") **(required)**: The protocol the virtual authenticator speaks. | ||
| - **transport** (enum: "usb", "nfc", "ble", "internal") **(required)**: The transport for the authenticator. | ||
| - **hasResidentKey** (boolean) _(optional)_: Whether the authenticator supports resident keys (passkeys). | ||
| - **hasUserVerification** (boolean) _(optional)_: Whether the authenticator supports user verification. | ||
| - **isUserVerified** (boolean) _(optional)_: Whether user verification is currently enabled/verified. | ||
|
|
||
| --- | ||
|
|
||
| ### `webauthn_add_credential` | ||
|
|
||
| **Description:** Add a credential to a virtual authenticator. | ||
|
|
||
| **Parameters:** | ||
|
|
||
| - **authenticatorId** (string) **(required)**: The ID of the authenticator to add the credential to. | ||
| - **credentialId** (string) **(required)**: The credential ID (base64 encoded). | ||
| - **isResidentCredential** (boolean) **(required)**: Whether this is a resident (discoverable) credential. | ||
| - **privateKey** (string) **(required)**: The private key in PKCS#8 format (base64 encoded). | ||
| - **rpId** (string) **(required)**: The relying party ID. | ||
| - **signCount** (integer) _(optional)_: The signature counter. | ||
| - **userHandle** (string) _(optional)_: The user handle (base64 encoded). | ||
|
|
||
| --- | ||
|
|
||
| ### `webauthn_clear_credentials` | ||
|
|
||
| **Description:** Clear all credentials from a virtual authenticator. | ||
|
|
||
| **Parameters:** | ||
|
|
||
| - **authenticatorId** (string) **(required)**: The ID of the authenticator to clear credentials from. | ||
|
|
||
| --- | ||
|
|
||
| ### `webauthn_enable` | ||
|
|
||
| **Description:** Enable the WebAuthn virtual authenticator environment for the selected page. | ||
|
|
||
| **Parameters:** None | ||
|
|
||
| --- | ||
|
|
||
| ### `webauthn_get_credentials` | ||
|
|
||
| **Description:** Get all credentials registered with a virtual authenticator. | ||
|
|
||
| **Parameters:** | ||
|
|
||
| - **authenticatorId** (string) **(required)**: The ID of the authenticator to get credentials from. | ||
|
|
||
| --- | ||
|
|
||
| ### `webauthn_remove_authenticator` | ||
|
|
||
| **Description:** Remove a virtual WebAuthn authenticator. | ||
|
|
||
| **Parameters:** | ||
|
|
||
| - **authenticatorId** (string) **(required)**: The ID of the authenticator to remove. | ||
|
|
||
| --- | ||
|
|
||
| ### `webauthn_set_user_verified` | ||
|
|
||
| **Description:** Set whether user verification succeeds or fails for a virtual authenticator. | ||
|
|
||
| **Parameters:** | ||
|
|
||
| - **authenticatorId** (string) **(required)**: The ID of the authenticator. | ||
| - **isUserVerified** (boolean) **(required)**: Whether user verification should succeed. | ||
|
|
||
| --- | ||
|
|
||
| ## Performance | ||
|
|
||
| ### `performance_analyze_insight` | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we probably want a dedicated category for WebAuthN with a separate CLI flag to control it.