Edit

WebAuthn

Overview of the WebAuthn technology, which provides Win32 apps with APIs for communicating to Windows Hello, external security keys, and plugin authenticators as part of WebAuthn and CTAP specifications.

To develop with the WebAuthn API, you need these headers:

For programming guidance for this technology, see:

Enumerations

 
AUTHENTICATOR_STATE

Specifies whether a plugin authenticator is enabled.
PLUGIN_LOCK_STATUS

Specifies whether a plugin authenticator is locked.
WEBAUTHN_PLUGIN_PERFORM_UV_OPERATION_TYPE

Specifies the type of Windows Hello user-verification operation for a plugin authenticator.
WEBAUTHN_PLUGIN_REQUEST_TYPE

Specifies the encoding used for a plugin authenticator request payload.

Functions

 
CancelOperation

Cancels an in-progress plugin authenticator operation.
GetAssertion

Gets an assertion for a plugin authenticator request.
GetLockStatus

Gets the current lock state of the plugin authenticator.
MakeCredential

Creates a credential for a plugin authenticator request.
WEBAUTHN_PLUGIN_STATUS_CHANGE_CALLBACK

An application-defined callback that Windows invokes when plugin authenticator status changes.
WebAuthNAuthenticatorGetAssertion

Produces an assertion signature representing an assertion by the authenticator that the user has consented to a specific transaction.
WebAuthNAuthenticatorMakeCredential

Creates a public key credential source bound to a managing authenticator and returns the credential public key associated with its credential private key.
WebAuthNCancelCurrentOperation

Terminates operation currently in progress in the authenticator session.
WebAuthNDecodeGetAssertionRequest

Decodes a CTAP CBOR-encoded getAssertion request.
WebAuthNDecodeMakeCredentialRequest

Decodes a CTAP CBOR-encoded makeCredential request.
WebAuthNDeletePlatformCredential

Removes a credential source stored on an authenticator.
WebAuthNEncodeGetAssertionResponse

Encodes a getAssertion response as CTAP CBOR.
WebAuthNEncodeMakeCredentialResponse

Encodes a credential attestation as a CTAP CBOR makeCredential response.
WebAuthNFreeAssertion

Frees a previously allocated WebAuthN assertion.
WebAuthNFreeAuthenticatorList

Frees a previously allocated authenticator details list.
WebAuthNFreeCredentialAttestation

Frees a previously allocated credential attestation.
WebAuthNFreeDecodedGetAssertionRequest

Frees a decoded getAssertion request.
WebAuthNFreeDecodedMakeCredentialRequest

Frees a decoded makeCredential request.
WebAuthNFreePlatformCredentialList

Frees the allocation for the platform credential list.
WebAuthNGetApiVersionNumber

Gets the API version number.
WebAuthNGetAuthenticatorList

Retrieves a list of available authenticators.
WebAuthNGetCancellationId

Gets the cancellation ID for a canceled operation.
WebAuthNGetErrorName

Gets the error name for an error code.
WebAuthNGetPlatformCredentialList

Gets the list of stored credentials.
WebAuthNGetW3CExceptionDOMError

Gets the W3C DOM error code for the last failed operation.
WebAuthNIsUserVerifyingPlatformAuthenticatorAvailable

Determines if the platform authenticator service is available.
WebAuthNPluginAddAuthenticator

Registers a plugin authenticator with Windows.
WebAuthNPluginAddAuthenticator2

Registers a plugin authenticator with Windows by using the extended add-authenticator options.
WebAuthNPluginAuthenticatorAddCredentials

Adds cached credential metadata for a plugin authenticator.
WebAuthNPluginAuthenticatorFreeCredentialDetailsArray

Frees an array returned by WebAuthNPluginAuthenticatorGetAllCredentials.
WebAuthNPluginAuthenticatorGetAllCredentials

Gets all cached credential metadata for a plugin authenticator.
WebAuthNPluginAuthenticatorRemoveAllCredentials

Removes all cached credential metadata for a plugin authenticator.
WebAuthNPluginAuthenticatorRemoveCredentials

Removes cached credential metadata for a plugin authenticator.
WebAuthNPluginFreeAddAuthenticatorResponse

Frees a response returned by WebAuthNPluginAddAuthenticator or EXPERIMENTAL_WebAuthNPluginAddAuthenticator2.
WebAuthNPluginFreePublicKeyResponse

Frees a public-key buffer returned by a WebAuthN plugin public-key function.
WebAuthNPluginFreeUserVerificationResponse

Frees a response buffer returned by a plugin user-verification function.
WebAuthNPluginGetAuthenticatorState

Gets the current enabled or disabled state of a plugin authenticator.
WebAuthNPluginGetOperationSigningPublicKey

Gets the operation-signing public key for a plugin authenticator.
WebAuthNPluginGetUserVerificationCount

Gets the user-verification counter for a plugin authenticator.
WebAuthNPluginGetUserVerificationPublicKey

Gets the public key associated with plugin user verification.
WebAuthNPluginPerformUserVerification

Performs Windows Hello user verification for a plugin authenticator operation.
WebAuthNPluginPerformUserVerification2

Performs Windows Hello user verification for a plugin authenticator operation by using the extended user-verification request.
WebAuthNPluginRegisterStatusChangeCallback

Registers a callback that is invoked when plugin authenticator status changes.
WebAuthNPluginRemoveAuthenticator

Unregisters a plugin authenticator from Windows.
WebAuthNPluginUnregisterStatusChangeCallback

Unregisters a previously registered plugin status-change callback.
WebAuthNPluginUpdateAuthenticatorDetails

Updates metadata for a registered plugin authenticator.
WebAuthNPluginUpdateAuthenticatorDetails2

Updates metadata for a registered plugin authenticator by using the extended update-details structure.

Interfaces

 
IPluginAuthenticator

Defines the COM contract that a WebAuthn plugin authenticator implements so Windows can dispatch WebAuthn operations to it.

Structures

 
CTAPCBOR_HYBRID_STORAGE_LINKED_DATA

Contains hybrid transport linked device data for a CTAP authenticator.
WEBAUTHN_ASSERTION

A structure that contains the data necessary to verify an assertion.
WEBAUTHN_AUTHENTICATOR_DETAILS

Contains information about an available authenticator.
WEBAUTHN_AUTHENTICATOR_DETAILS_LIST

Contains a list of authenticator details returned by WebAuthNGetAuthenticatorList.
WEBAUTHN_AUTHENTICATOR_DETAILS_OPTIONS

Contains options for the WebAuthNGetAuthenticatorList function.
WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS

A structure that contains the options to get an assertion.
WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS

The options for the WebAuthNAuthenticatorMakeCredential operation.
WEBAUTHN_CLIENT_DATA

A structure containing the client data that is sent to the authenticator.
WEBAUTHN_COMMON_ATTESTATION

The structure containing the common data for an attestation.
WEBAUTHN_COSE_CREDENTIAL_PARAMETER

The structure containing the COSE credential parameter information.
WEBAUTHN_COSE_CREDENTIAL_PARAMETERS

The structure containing the COSE parameters for a credential.
WEBAUTHN_CRED_BLOB_EXTENSION

The blob extension data for a credential.
WEBAUTHN_CRED_PROTECT_EXTENSION_IN

Contains the credential protect extension information.
WEBAUTHN_CRED_WITH_HMAC_SECRET_SALT

The structure containing the credential with SALT values.
WEBAUTHN_CREDENTIAL

Contains information about a credential.
WEBAUTHN_CREDENTIAL_ATTESTATION

Contains the attestation data for a credential.
WEBAUTHN_CREDENTIAL_DETAILS

Contains the data for a credential.
WEBAUTHN_CREDENTIAL_DETAILS_LIST

The list of credentials.
WEBAUTHN_CREDENTIAL_EX

Data about a credential with extra information.
WEBAUTHN_CREDENTIAL_LIST

The list of credentials that the user has registered with the authenticator.
WEBAUTHN_CREDENTIALS

The array of credentials that the user has registered with the authenticator.
WEBAUTHN_CTAPCBOR_AUTHENTICATOR_OPTIONS

Contains CTAP authenticator option values used with decoded plugin requests.
WEBAUTHN_CTAPCBOR_ECC_PUBLIC_KEY

Represents an elliptic-curve public key used in CTAP CBOR extensions.
WEBAUTHN_CTAPCBOR_GET_ASSERTION_REQUEST

Contains a decoded CTAP CBOR getAssertion request.
WEBAUTHN_CTAPCBOR_GET_ASSERTION_RESPONSE

Contains data for a CTAP CBOR getAssertion response.
WEBAUTHN_CTAPCBOR_HMAC_SALT_EXTENSION

Contains data for the CTAP HMAC-salt extension.
WEBAUTHN_CTAPCBOR_MAKE_CREDENTIAL_REQUEST

Contains a decoded CTAP CBOR makeCredential request.
WEBAUTHN_EXTENSION

Contains information about an extension.
WEBAUTHN_EXTENSIONS

Contains a list of extensions.
WEBAUTHN_GET_CREDENTIALS_OPTIONS

Contains the options for the WebAuthNGetPlatformCredentialsList function.
WEBAUTHN_HMAC_SECRET_SALT

Contains the SALT values for the Hmac-Secret.
WEBAUTHN_HMAC_SECRET_SALT_VALUES

Contains the SALT values for the HMAC secret.
WEBAUTHN_PLUGIN_ADD_AUTHENTICATOR_OPTIONS

Contains options for registering a plugin authenticator with Windows.
WEBAUTHN_PLUGIN_ADD_AUTHENTICATOR_OPTIONS_2

Contains extended options for registering a plugin authenticator with Windows.
WEBAUTHN_PLUGIN_ADD_AUTHENTICATOR_RESPONSE

Contains the response returned when a plugin authenticator is registered.
WEBAUTHN_PLUGIN_CANCEL_OPERATION_REQUEST

Identifies an in-progress plugin authenticator operation to cancel.
WEBAUTHN_PLUGIN_CREDENTIAL_DETAILS

Contains metadata for a credential exposed by a plugin authenticator.
WEBAUTHN_PLUGIN_OPERATION_REQUEST

Describes a WebAuthn operation request sent to a plugin authenticator.
WEBAUTHN_PLUGIN_OPERATION_RESPONSE

Contains the encoded response returned by a plugin authenticator.
WEBAUTHN_PLUGIN_UPDATE_AUTHENTICATOR_DETAILS

Contains updated metadata for a registered plugin authenticator.
WEBAUTHN_PLUGIN_UPDATE_AUTHENTICATOR_DETAILS_2

Contains extended metadata for updating a registered plugin authenticator.
WEBAUTHN_PLUGIN_USER_VERIFICATION_REQUEST

Describes a Windows Hello user-verification request for a plugin authenticator.
WEBAUTHN_PLUGIN_USER_VERIFICATION_REQUEST_2

Describes an extended Windows Hello user-verification request for a plugin authenticator.
WEBAUTHN_RP_ENTITY_INFORMATION

Information about the Relying Party.
WEBAUTHN_USER_ENTITY_INFORMATION

Information about a user entity.
WEBAUTHN_X5C

The X.509 certificate chain.