370 lines
13 KiB
C
370 lines
13 KiB
C
/**
|
|
* 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_ */
|