| /** | |
| * This file has no copyright assigned and is placed in the Public Domain. | |
| * This file is part of the mingw-w64 runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. | |
| */ | |
| #ifndef _WEBAUTHN_H_ | |
| #define _WEBAUTHN_H_ | |
| #include <winapifamily.h> | |
| #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| #ifndef WINAPI | |
| #if defined(_ARM_) | |
| #define WINAPI | |
| #else | |
| #define WINAPI __stdcall | |
| #endif | |
| #endif | |
| #ifndef INITGUID | |
| #define INITGUID | |
| #include <guiddef.h> | |
| #undef INITGUID | |
| #else | |
| #include <guiddef.h> | |
| #endif | |
| #define WEBAUTHN_API_VERSION_1 1 | |
| #define WEBAUTHN_API_VERSION_2 2 | |
| #define WEBAUTHN_API_VERSION_3 3 | |
| #define WEBAUTHN_API_CURRENT_VERSION WEBAUTHN_API_VERSION_3 | |
| #define WEBAUTHN_RP_ENTITY_INFORMATION_CURRENT_VERSION 1 | |
| typedef struct _WEBAUTHN_RP_ENTITY_INFORMATION { | |
| DWORD dwVersion; | |
| PCWSTR pwszId; | |
| PCWSTR pwszName; | |
| PCWSTR pwszIcon; | |
| } WEBAUTHN_RP_ENTITY_INFORMATION, *PWEBAUTHN_RP_ENTITY_INFORMATION; | |
| typedef const WEBAUTHN_RP_ENTITY_INFORMATION *PCWEBAUTHN_RP_ENTITY_INFORMATION; | |
| #define WEBAUTHN_MAX_USER_ID_LENGTH 64 | |
| #define WEBAUTHN_USER_ENTITY_INFORMATION_CURRENT_VERSION 1 | |
| typedef struct _WEBAUTHN_USER_ENTITY_INFORMATION { | |
| DWORD dwVersion; | |
| DWORD cbId; | |
| PBYTE pbId; | |
| PCWSTR pwszName; | |
| PCWSTR pwszIcon; | |
| PCWSTR pwszDisplayName; | |
| } WEBAUTHN_USER_ENTITY_INFORMATION, *PWEBAUTHN_USER_ENTITY_INFORMATION; | |
| typedef const WEBAUTHN_USER_ENTITY_INFORMATION *PCWEBAUTHN_USER_ENTITY_INFORMATION; | |
| #define WEBAUTHN_HASH_ALGORITHM_SHA_256 L"SHA-256" | |
| #define WEBAUTHN_HASH_ALGORITHM_SHA_384 L"SHA-384" | |
| #define WEBAUTHN_HASH_ALGORITHM_SHA_512 L"SHA-512" | |
| #define WEBAUTHN_CLIENT_DATA_CURRENT_VERSION 1 | |
| typedef struct _WEBAUTHN_CLIENT_DATA { | |
| DWORD dwVersion; | |
| DWORD cbClientDataJSON; | |
| PBYTE pbClientDataJSON; | |
| LPCWSTR pwszHashAlgId; | |
| } WEBAUTHN_CLIENT_DATA, *PWEBAUTHN_CLIENT_DATA; | |
| typedef const WEBAUTHN_CLIENT_DATA *PCWEBAUTHN_CLIENT_DATA; | |
| #define WEBAUTHN_CREDENTIAL_TYPE_PUBLIC_KEY L"public-key" | |
| #define WEBAUTHN_COSE_ALGORITHM_ECDSA_P256_WITH_SHA256 -7 | |
| #define WEBAUTHN_COSE_ALGORITHM_ECDSA_P384_WITH_SHA384 -35 | |
| #define WEBAUTHN_COSE_ALGORITHM_ECDSA_P521_WITH_SHA512 -36 | |
| #define WEBAUTHN_COSE_ALGORITHM_RSASSA_PKCS1_V1_5_WITH_SHA256 -257 | |
| #define WEBAUTHN_COSE_ALGORITHM_RSASSA_PKCS1_V1_5_WITH_SHA384 -258 | |
| #define WEBAUTHN_COSE_ALGORITHM_RSASSA_PKCS1_V1_5_WITH_SHA512 -259 | |
| #define WEBAUTHN_COSE_ALGORITHM_RSA_PSS_WITH_SHA256 -37 | |
| #define WEBAUTHN_COSE_ALGORITHM_RSA_PSS_WITH_SHA384 -38 | |
| #define WEBAUTHN_COSE_ALGORITHM_RSA_PSS_WITH_SHA512 -39 | |
| #define WEBAUTHN_COSE_CREDENTIAL_PARAMETER_CURRENT_VERSION 1 | |
| typedef struct _WEBAUTHN_COSE_CREDENTIAL_PARAMETER { | |
| DWORD dwVersion; | |
| LPCWSTR pwszCredentialType; | |
| LONG lAlg; | |
| } WEBAUTHN_COSE_CREDENTIAL_PARAMETER, *PWEBAUTHN_COSE_CREDENTIAL_PARAMETER; | |
| typedef const WEBAUTHN_COSE_CREDENTIAL_PARAMETER *PCWEBAUTHN_COSE_CREDENTIAL_PARAMETER; | |
| typedef struct _WEBAUTHN_COSE_CREDENTIAL_PARAMETERS { | |
| DWORD cCredentialParameters; | |
| PWEBAUTHN_COSE_CREDENTIAL_PARAMETER pCredentialParameters; | |
| } WEBAUTHN_COSE_CREDENTIAL_PARAMETERS, *PWEBAUTHN_COSE_CREDENTIAL_PARAMETERS; | |
| typedef const WEBAUTHN_COSE_CREDENTIAL_PARAMETERS *PCWEBAUTHN_COSE_CREDENTIAL_PARAMETERS; | |
| #define WEBAUTHN_CREDENTIAL_CURRENT_VERSION 1 | |
| typedef struct _WEBAUTHN_CREDENTIAL { | |
| DWORD dwVersion; | |
| DWORD cbId; | |
| PBYTE pbId; | |
| LPCWSTR pwszCredentialType; | |
| } WEBAUTHN_CREDENTIAL, *PWEBAUTHN_CREDENTIAL; | |
| typedef const WEBAUTHN_CREDENTIAL *PCWEBAUTHN_CREDENTIAL; | |
| typedef struct _WEBAUTHN_CREDENTIALS { | |
| DWORD cCredentials; | |
| PWEBAUTHN_CREDENTIAL pCredentials; | |
| } WEBAUTHN_CREDENTIALS, *PWEBAUTHN_CREDENTIALS; | |
| typedef const WEBAUTHN_CREDENTIALS *PCWEBAUTHN_CREDENTIALS; | |
| #define WEBAUTHN_CTAP_TRANSPORT_USB 0x00000001 | |
| #define WEBAUTHN_CTAP_TRANSPORT_NFC 0x00000002 | |
| #define WEBAUTHN_CTAP_TRANSPORT_BLE 0x00000004 | |
| #define WEBAUTHN_CTAP_TRANSPORT_TEST 0x00000008 | |
| #define WEBAUTHN_CTAP_TRANSPORT_INTERNAL 0x00000010 | |
| #define WEBAUTHN_CTAP_TRANSPORT_FLAGS_MASK 0x0000001F | |
| #define WEBAUTHN_CREDENTIAL_EX_CURRENT_VERSION 1 | |
| typedef struct _WEBAUTHN_CREDENTIAL_EX { | |
| DWORD dwVersion; | |
| DWORD cbId; | |
| PBYTE pbId; | |
| LPCWSTR pwszCredentialType; | |
| DWORD dwTransports; | |
| } WEBAUTHN_CREDENTIAL_EX, *PWEBAUTHN_CREDENTIAL_EX; | |
| typedef const WEBAUTHN_CREDENTIAL_EX *PCWEBAUTHN_CREDENTIAL_EX; | |
| typedef struct _WEBAUTHN_CREDENTIAL_LIST { | |
| DWORD cCredentials; | |
| PWEBAUTHN_CREDENTIAL_EX *ppCredentials; | |
| } WEBAUTHN_CREDENTIAL_LIST, *PWEBAUTHN_CREDENTIAL_LIST; | |
| typedef const WEBAUTHN_CREDENTIAL_LIST *PCWEBAUTHN_CREDENTIAL_LIST; | |
| #define WEBAUTHN_EXTENSIONS_IDENTIFIER_HMAC_SECRET L"hmac-secret" | |
| #define WEBAUTHN_USER_VERIFICATION_ANY 0 | |
| #define WEBAUTHN_USER_VERIFICATION_OPTIONAL 1 | |
| #define WEBAUTHN_USER_VERIFICATION_OPTIONAL_WITH_CREDENTIAL_ID_LIST 2 | |
| #define WEBAUTHN_USER_VERIFICATION_REQUIRED 3 | |
| typedef struct _WEBAUTHN_CRED_PROTECT_EXTENSION_IN { | |
| DWORD dwCredProtect; | |
| WINBOOL bRequireCredProtect; | |
| } WEBAUTHN_CRED_PROTECT_EXTENSION_IN, *PWEBAUTHN_CRED_PROTECT_EXTENSION_IN; | |
| typedef const WEBAUTHN_CRED_PROTECT_EXTENSION_IN *PCWEBAUTHN_CRED_PROTECT_EXTENSION_IN; | |
| #define WEBAUTHN_EXTENSIONS_IDENTIFIER_CRED_PROTECT L"credProtect" | |
| typedef struct _WEBAUTHN_CRED_BLOB_EXTENSION { | |
| DWORD cbCredBlob; | |
| PBYTE pbCredBlob; | |
| } WEBAUTHN_CRED_BLOB_EXTENSION, *PWEBAUTHN_CRED_BLOB_EXTENSION; | |
| typedef const WEBAUTHN_CRED_BLOB_EXTENSION *PCWEBAUTHN_CRED_BLOB_EXTENSION; | |
| #define WEBAUTHN_EXTENSIONS_IDENTIFIER_CRED_BLOB L"credBlob" | |
| #define WEBAUTHN_EXTENSIONS_IDENTIFIER_MIN_PIN_LENGTH L"minPinLength" | |
| typedef struct _WEBAUTHN_EXTENSION { | |
| LPCWSTR pwszExtensionIdentifier; | |
| DWORD cbExtension; | |
| PVOID pvExtension; | |
| } WEBAUTHN_EXTENSION, *PWEBAUTHN_EXTENSION; | |
| typedef const WEBAUTHN_EXTENSION *PCWEBAUTHN_EXTENSION; | |
| typedef struct _WEBAUTHN_EXTENSIONS { | |
| DWORD cExtensions; | |
| PWEBAUTHN_EXTENSION pExtensions; | |
| } WEBAUTHN_EXTENSIONS, *PWEBAUTHN_EXTENSIONS; | |
| typedef const WEBAUTHN_EXTENSIONS *PCWEBAUTHN_EXTENSIONS; | |
| #define WEBAUTHN_AUTHENTICATOR_ATTACHMENT_ANY 0 | |
| #define WEBAUTHN_AUTHENTICATOR_ATTACHMENT_PLATFORM 1 | |
| #define WEBAUTHN_AUTHENTICATOR_ATTACHMENT_CROSS_PLATFORM 2 | |
| #define WEBAUTHN_AUTHENTICATOR_ATTACHMENT_CROSS_PLATFORM_U2F_V2 3 | |
| #define WEBAUTHN_USER_VERIFICATION_REQUIREMENT_ANY 0 | |
| #define WEBAUTHN_USER_VERIFICATION_REQUIREMENT_REQUIRED 1 | |
| #define WEBAUTHN_USER_VERIFICATION_REQUIREMENT_PREFERRED 2 | |
| #define WEBAUTHN_USER_VERIFICATION_REQUIREMENT_DISCOURAGED 3 | |
| #define WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_ANY 0 | |
| #define WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_NONE 1 | |
| #define WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_INDIRECT 2 | |
| #define WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_DIRECT 3 | |
| #define WEBAUTHN_ENTERPRISE_ATTESTATION_NONE 0 | |
| #define WEBAUTHN_ENTERPRISE_ATTESTATION_VENDOR_FACILITATED 1 | |
| #define WEBAUTHN_ENTERPRISE_ATTESTATION_PLATFORM_MANAGED 2 | |
| #define WEBAUTHN_LARGE_BLOB_SUPPORT_NONE 0 | |
| #define WEBAUTHN_LARGE_BLOB_SUPPORT_REQUIRED 1 | |
| #define WEBAUTHN_LARGE_BLOB_SUPPORT_PREFERRED 2 | |
| #define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_1 1 | |
| #define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_2 2 | |
| #define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_3 3 | |
| #define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_4 4 | |
| #define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_CURRENT_VERSION WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_4 | |
| typedef struct _WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS { | |
| DWORD dwVersion; | |
| DWORD dwTimeoutMilliseconds; | |
| WEBAUTHN_CREDENTIALS CredentialList; | |
| WEBAUTHN_EXTENSIONS Extensions; | |
| DWORD dwAuthenticatorAttachment; | |
| WINBOOL bRequireResidentKey; | |
| DWORD dwUserVerificationRequirement; | |
| DWORD dwAttestationConveyancePreference; | |
| DWORD dwFlags; | |
| GUID *pCancellationId; | |
| PWEBAUTHN_CREDENTIAL_LIST pExcludeCredentialList; | |
| DWORD dwEnterpriseAttestation; | |
| DWORD dwLargeBlobSupport; | |
| WINBOOL bPreferResidentKey; | |
| } WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS, *PWEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS; | |
| typedef const WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS *PCWEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS; | |
| #define WEBAUTHN_CRED_LARGE_BLOB_OPERATION_NONE 0 | |
| #define WEBAUTHN_CRED_LARGE_BLOB_OPERATION_GET 1 | |
| #define WEBAUTHN_CRED_LARGE_BLOB_OPERATION_SET 2 | |
| #define WEBAUTHN_CRED_LARGE_BLOB_OPERATION_DELETE 3 | |
| #define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_1 1 | |
| #define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_2 2 | |
| #define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_3 3 | |
| #define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_4 4 | |
| #define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_5 5 | |
| #define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_CURRENT_VERSION WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_5 | |
| typedef struct _WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS { | |
| DWORD dwVersion; | |
| DWORD dwTimeoutMilliseconds; | |
| WEBAUTHN_CREDENTIALS CredentialList; | |
| WEBAUTHN_EXTENSIONS Extensions; | |
| DWORD dwAuthenticatorAttachment; | |
| DWORD dwUserVerificationRequirement; | |
| DWORD dwFlags; | |
| PCWSTR pwszU2fAppId; | |
| WINBOOL *pbU2fAppId; | |
| GUID *pCancellationId; | |
| PWEBAUTHN_CREDENTIAL_LIST pAllowCredentialList; | |
| DWORD dwCredLargeBlobOperation; | |
| DWORD cbCredLargeBlob; | |
| PBYTE pbCredLargeBlob; | |
| } WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS, *PWEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS; | |
| typedef const WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS *PCWEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS; | |
| #define WEBAUTHN_ATTESTATION_DECODE_NONE 0 | |
| #define WEBAUTHN_ATTESTATION_DECODE_COMMON 1 | |
| #define WEBAUTHN_ATTESTATION_VER_TPM_2_0 L"2.0" | |
| typedef struct _WEBAUTHN_X5C { | |
| DWORD cbData; | |
| PBYTE pbData; | |
| } WEBAUTHN_X5C, *PWEBAUTHN_X5C; | |
| #define WEBAUTHN_COMMON_ATTESTATION_CURRENT_VERSION 1 | |
| typedef struct _WEBAUTHN_COMMON_ATTESTATION { | |
| DWORD dwVersion; | |
| PCWSTR pwszAlg; | |
| LONG lAlg; | |
| DWORD cbSignature; | |
| PBYTE pbSignature; | |
| DWORD cX5c; | |
| PWEBAUTHN_X5C pX5c; | |
| PCWSTR pwszVer; | |
| DWORD cbCertInfo; | |
| PBYTE pbCertInfo; | |
| DWORD cbPubArea; | |
| PBYTE pbPubArea; | |
| } WEBAUTHN_COMMON_ATTESTATION, *PWEBAUTHN_COMMON_ATTESTATION; | |
| typedef const WEBAUTHN_COMMON_ATTESTATION *PCWEBAUTHN_COMMON_ATTESTATION; | |
| #define WEBAUTHN_ATTESTATION_TYPE_PACKED L"packed" | |
| #define WEBAUTHN_ATTESTATION_TYPE_U2F L"fido-u2f" | |
| #define WEBAUTHN_ATTESTATION_TYPE_TPM L"tpm" | |
| #define WEBAUTHN_ATTESTATION_TYPE_NONE L"none" | |
| #define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_1 1 | |
| #define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_2 2 | |
| #define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_3 3 | |
| #define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_4 4 | |
| #define WEBAUTHN_CREDENTIAL_ATTESTATION_CURRENT_VERSION WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_4 | |
| typedef struct _WEBAUTHN_CREDENTIAL_ATTESTATION { | |
| DWORD dwVersion; | |
| PCWSTR pwszFormatType; | |
| DWORD cbAuthenticatorData; | |
| PBYTE pbAuthenticatorData; | |
| DWORD cbAttestation; | |
| PBYTE pbAttestation; | |
| DWORD dwAttestationDecodeType; | |
| PVOID pvAttestationDecode; | |
| DWORD cbAttestationObject; | |
| PBYTE pbAttestationObject; | |
| DWORD cbCredentialId; | |
| PBYTE pbCredentialId; | |
| WEBAUTHN_EXTENSIONS Extensions; | |
| DWORD dwUsedTransport; | |
| WINBOOL bEpAtt; | |
| WINBOOL bLargeBlobSupported; | |
| WINBOOL bResidentKey; | |
| } WEBAUTHN_CREDENTIAL_ATTESTATION, *PWEBAUTHN_CREDENTIAL_ATTESTATION; | |
| typedef const WEBAUTHN_CREDENTIAL_ATTESTATION *PCWEBAUTHN_CREDENTIAL_ATTESTATION; | |
| #define WEBAUTHN_CRED_LARGE_BLOB_STATUS_NONE 0 | |
| #define WEBAUTHN_CRED_LARGE_BLOB_STATUS_SUCCESS 1 | |
| #define WEBAUTHN_CRED_LARGE_BLOB_STATUS_NOT_SUPPORTED 2 | |
| #define WEBAUTHN_CRED_LARGE_BLOB_STATUS_INVALID_DATA 3 | |
| #define WEBAUTHN_CRED_LARGE_BLOB_STATUS_INVALID_PARAMETER 4 | |
| #define WEBAUTHN_CRED_LARGE_BLOB_STATUS_NOT_FOUND 5 | |
| #define WEBAUTHN_CRED_LARGE_BLOB_STATUS_MULTIPLE_CREDENTIALS 6 | |
| #define WEBAUTHN_CRED_LARGE_BLOB_STATUS_LACK_OF_SPACE 7 | |
| #define WEBAUTHN_CRED_LARGE_BLOB_STATUS_PLATFORM_ERROR 8 | |
| #define WEBAUTHN_CRED_LARGE_BLOB_STATUS_AUTHENTICATOR_ERROR 9 | |
| #define WEBAUTHN_ASSERTION_VERSION_1 1 | |
| #define WEBAUTHN_ASSERTION_VERSION_2 2 | |
| #define WEBAUTHN_ASSERTION_CURRENT_VERSION WEBAUTHN_ASSERTION_VERSION_2 | |
| typedef struct _WEBAUTHN_ASSERTION { | |
| DWORD dwVersion; | |
| DWORD cbAuthenticatorData; | |
| PBYTE pbAuthenticatorData; | |
| DWORD cbSignature; | |
| PBYTE pbSignature; | |
| WEBAUTHN_CREDENTIAL Credential; | |
| DWORD cbUserId; | |
| PBYTE pbUserId; | |
| WEBAUTHN_EXTENSIONS Extensions; | |
| DWORD cbCredLargeBlob; | |
| PBYTE pbCredLargeBlob; | |
| DWORD dwCredLargeBlobStatus; | |
| } WEBAUTHN_ASSERTION, *PWEBAUTHN_ASSERTION; | |
| typedef const WEBAUTHN_ASSERTION *PCWEBAUTHN_ASSERTION; | |
| DWORD WINAPI WebAuthNGetApiVersionNumber(void); | |
| HRESULT WINAPI WebAuthNIsUserVerifyingPlatformAuthenticatorAvailable(WINBOOL *pbIsUserVerifyingPlatformAuthenticatorAvailable); | |
| HRESULT WINAPI WebAuthNAuthenticatorMakeCredential(HWND hWnd, PCWEBAUTHN_RP_ENTITY_INFORMATION pRpInformation, PCWEBAUTHN_USER_ENTITY_INFORMATION pUserInformation, PCWEBAUTHN_COSE_CREDENTIAL_PARAMETERS pPubKeyCredParams, PCWEBAUTHN_CLIENT_DATA pWebAuthNClientData, PCWEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS pWebAuthNMakeCredentialOptions, PWEBAUTHN_CREDENTIAL_ATTESTATION *ppWebAuthNCredentialAttestation); | |
| HRESULT WINAPI WebAuthNAuthenticatorGetAssertion(HWND hWnd, LPCWSTR pwszRpId, PCWEBAUTHN_CLIENT_DATA pWebAuthNClientData, PCWEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS pWebAuthNGetAssertionOptions, PWEBAUTHN_ASSERTION *ppWebAuthNAssertion); | |
| void WINAPI WebAuthNFreeCredentialAttestation(PWEBAUTHN_CREDENTIAL_ATTESTATION pWebAuthNCredentialAttestation); | |
| void WINAPI WebAuthNFreeAssertion(PWEBAUTHN_ASSERTION pWebAuthNAssertion); | |
| HRESULT WINAPI WebAuthNGetCancellationId(GUID* pCancellationId); | |
| HRESULT WINAPI WebAuthNCancelCurrentOperation(const GUID* pCancellationId); | |
| PCWSTR WINAPI WebAuthNGetErrorName(HRESULT hr); | |
| HRESULT WINAPI WebAuthNGetW3CExceptionDOMError(HRESULT hr); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /* WINAPI_FAMILY_PARTITION */ | |
| #endif /* _WEBAUTHN_H_ */ |