winhello is a Go library that provides bindings to the Windows WebAuthn API (Windows Hello), enabling authentication using Windows Hello biometrics or security keys in Go applications.
- Create and manage WebAuthn credentials.
- Authenticate users with Windows Hello.
- Support for WebAuthn extensions (
hmac-secret
,prf
,credBlob
, etc.) cgo
-free implementation (plain syscalls).- Windows Hello requires a window handle (hWnd) to work,
hiddenwindow
package allows making one without going into hassle with Windows API.
- WebAuthNAuthenticatorGetAssertion
- WebAuthNFreeAssertion
- WebAuthNAuthenticatorMakeCredential
- WebAuthNFreeCredentialAttestation
- WebAuthNCancelCurrentOperation
- WebAuthNDeletePlatformCredential
- WebAuthNGetApiVersionNumber
- WebAuthNGetCancellationId
- WebAuthNGetErrorName
- WebAuthNGetPlatformCredentialList
- WebAuthNFreePlatformCredentialList
- WebAuthNGetW3CExceptionDOMError
- WebAuthNIsUserVerifyingPlatformAuthenticatorAvailable
go get github.com/go-ctap/winhello
See a small example.
- Windows 10 or later
- Go 1.24 or later