Releases: MasterKale/SimpleWebAuthn
Releases · MasterKale/SimpleWebAuthn
v0.10.3
Packages:
- @simplewebauthn/[email protected]
Changes:
- [server] Add optional
rpID
argument togenerateAssertionOptions()
v0.10.2
Packages:
- @simplewebauthn/[email protected]
Changes:
- [server] Update ASN.1 parsing libraries to latest releases
v0.10.1
v0.10.0 - The one you can use your face with
Packages:
- @simplewebauthn/[email protected]
- @simplewebauthn/[email protected]
- @simplewebauthn/[email protected]
Changes:
- [server] Add support for "apple" attestations to support iOS Face ID and Touch ID
- [server] [browser] Enable specifying transports per credential for
allowCredentials
andexcludeCredentials
- [browser] Return authenticator's transports (when available) as
transports
in response fromstartAttestation()
- [typescript-types] Add new
AuthenticatorAttestationResponseFuture
type for better typing of credential response methods (getTransports()
,getAuthenticatorData()
, etc...)
Breaking Changes
- [server] Existing implementations of
generateAttestationOptions()
andgenerateAssertionOptions()
must be updated to specify credentials with their own transports:
generateAttestationOptions()
// OLD
const options = generateAttestationOptions({
excludedCredentialIDs: devices.map(dev => dev.credentialID),
suggestedTransports: ['usb', 'ble', 'nfc', 'internal'],
});
// NEW
const options = generateAttestationOptions({
excludeCredentials: devices.map(dev => ({
id: dev.credentialID,
type: 'public-key',
transports: dev.transports,
})),
});
generateAssertionOptions()
// OLD
const options = generateAssertionOptions({
allowedCredentialIDs: user.devices.map(dev => dev.credentialID),
suggestedTransports: ['usb', 'ble', 'nfc', 'internal'],
});
// NEW
const options = generateAssertionOptions({
allowCredentials: devices.map(dev => ({
id: dev.credentialID,
type: 'public-key',
transports: dev.transports,
})),
});
v0.9.1
v0.9.0 - The one that knows RSA from EC2
Packages:
- @simplewebauthn/[email protected]
- @simplewebauthn/[email protected]
- @simplewebauthn/[email protected]
Changes:
- [server] Add support for attestations and assertions containing RSA public keys.
- [browser] Version sync.
- [typescript-types] Version sync.
Breaking Changes
- [server]
authenticatorInfo.base64PublicKey
returned byverifyAttestationResponse()
is now the entire public key buffer instead of a pared down form of it (it's still returned base64url-encoded). This helps ensure support for existing public keys, as well as future public key formats that may be introduced in the future. Public keys previously returned by this method must be upgraded via this "upgrader" script to work with future assertions. - [server] The
serviceName
argument forgenerateAttestationOptions()
has been renamed torpName
. This brings it in line with the existingrpID
argument and maps more obviously to its respective property within the returned options.
v0.8.2
Packages:
- @simplewebauthn/[email protected]
- @simplewebauthn/[email protected]
- @simplewebauthn/[email protected]
Changes:
- [server] Return explicit defaults for
authenticatorSelection
in return value fromgenerateAttestationOptions()
for enhanced device compatibility. - [browser] Version sync.
- [typescript-types] Version sync.
v0.8.1
Packages:
- @simplewebauthn/[email protected]
Changes:
- [server] Stop filtering out algorithm ID's from
supportedAlgorithmIDs
when callinggenerateAttestationOptions()
- [server] Fix a bug when verifying TPM attestation extensions
v0.8.0 - The one with better challenges
Packages:
- @simplewebauthn/[email protected]
- @simplewebauthn/[email protected]
- @simplewebauthn/[email protected]
Changes:
- [server] The
challenge
parameter ofgenerateAttestationOptions()
andgenerateAssertionOptions()
is now optional.- When undefined the library will generate a random challenge. This value will be base64url-encoded in preparation for transit to the front end.
- When defined the value will be directly encoded to base64url in preparation for transit to the front end.
- [browser]
startAttestation()
andstartAssertion()
now convert the base64url-encodedoptions.challenge
to a buffer before passing it to the authenticator.
Breaking Changes
- [server]
verifyAttestationResponse()
andverifyAssertionResponse()
now require the base64url-encoded challenge to be passed in asexpectedChallenge
:
Before:
const challenge = 'someChallenge';
const opts = generateAttestationOptions({
...atteOpts,
challenge,
});
const verification = verifyAttestationResponse({
...atteResp,
// Raw original value
expectedChallenge: challenge,
});
After:
const challenge = 'someChallenge';
const opts = generateAttestationOptions({
...atteOpts,
// This is now optional
challenge,
});
const verification = verifyAttestationResponse({
...atteResp,
// Now expected to be the base64url-encoded `challenge` returned
// by `generateAttestationOptions()`
expectedChallenge: opts.challenge,
});
v0.7.4
Packages:
- @simplewebauthn/[email protected]
- @simplewebauthn/[email protected]
Changes:
- [browser] Update dependencies
- [server] Update dependencies