Releases: MasterKale/SimpleWebAuthn
v13.3.1
v13.3.0
- [browser]
startRegistration()andstartAuthentication()will recognize punycode domains as valid domains when trying to identify why an error occurred (#750) - [server] A new
verifyMDSBlob()helper method has been added to verify and extract metadata statements from FIDO MDS blobs. See the docs here for more info (#752)
v13.2.3
v13.2.2
v13.2.1
v13.2.0
- [server] The return value from
verifyRegistrationResponse()has been defined more strictly to communicate thatregistrationInfowill only ever be present ifverifiedistrue(#715) - [server]
verifyRegistrationResponse()can now verify attestations containing SHA256 hashes by using EC public keys with the P-384 curve (#721) - [server] The Android SafetyNet "CTS profile match" system integrity check can now be disabled by setting
attestationSafetyNetEnforceCTSCheck: falsewhen callingverifyRegistrationResponse(). This check remains enforced by default (#722) - [browser] [server] These libraries now have better support in Deno 2.2+ projects which use generic typing for
Uint8Arrayvia TypeScript 5.7. SimpleWebAuthn values of typeUint8Array_are equivalent toUint8Arrayin Deno 2.1 and earlier, andUint8Array<ArrayBuffer>in Deno 2.2 and later. (#717)
v13.1.2
v13.1.1
v13.1.0
Changes:
- [server] The
cross-fetchdependency has been removed from the project to silence in the consoleDeprecationWarning's about a "punycode" module (#661) - [browser]
startRegistration()andstartAuthentication()will now warn about calls made using the pre-v11 call structure to encourage refactoring to use the current call structure, but still try to handle such calls the best they can (#664)
v13.0.0 - The one where they share a type
Hot on the heels of the last major release, v13 introduces support for registration hints! Refined types and improved attestation trust anchor verification are also included. Last but not least, we say goodbye to one of the project's packages for better docs and fewer dependencies to install. Read on for more information, including refactor advice for dealing with the retirement of @simplewebauthn/types.
Changes:
- [server] A new
preferredAuthenticatorTypeargument can be set when callinggenerateRegistrationOptions()to generate options that encourage the browser to direct the user to register one of three types of authenticators:'securityKey','localDevice', or'remoteDevice'(a.k.a. opinionated WebAuthn hints support) (#653) - [browser]
startRegistration()will recognizehintsif specified inoptionsJSON(#652) - [server] Attestation verification now recognizes intermediate certificates as trust anchors (#650)
- [browser] [server] The types previously maintained in the types package are now included within the browser and server packages. See Breaking Changes below for more info (#655)
Breaking Changes
@typescript/types is being retired.
Its types will now be included directly in @simplewebauthn/browser and @simplewebauthn/server.
To refactor existing imports from /types, simply import them from /browser or /server instead:
Before:
import type {
AuthenticationResponseJSON,
RegistrationResponseJSON,
WebAuthnCredential,
} from '@simplewebauthn/types'; // <--After:
import type {
AuthenticationResponseJSON,
RegistrationResponseJSON,
WebAuthnCredential,
} from '@simplewebauthn/server'; // <--[server] attestationType no longer accepts 'indirect'
The benefits of indirect attestation are too minimal to be useful for Relying Parties. In practice it is almost never used over ignoring the concept completely with 'none' or needing to be intentional and setting 'direct'.
RP's that have been specifying attestationType: 'indirect' when calling generateRegistrationOptions() will need to refactor their code to either omit attestationType (generateRegistrationOptions() will default to attestationType: 'none') or set attestationType: 'direct' instead:
Before:
const options = await generateRegistrationOptions({
// ...
attestationType: 'indirect'
});After:
const options = await generateRegistrationOptions({
// ...
});-or-
const options = await generateRegistrationOptions({
// ...
attestationType: 'direct'
});