Skip to content

Releases: Yubico/java-webauthn-server

Pre-release 2.7.0-RC2

Pre-release 2.7.0-RC2 Pre-release
Pre-release

Choose a tag to compare

@emlun emlun released this 02 May 11:44
2.7.0-RC2
0ae9fb1

Fixes:

  • Fixed JSON encoding of credProtect extension inputs.

Artifacts built with openjdk version "17.0.14" 2025-01-21.

Experimental release 2.8.0-alpha1

Pre-release

Choose a tag to compare

@emlun emlun released this 30 Apr 11:50
2.8.0-alpha1
5e7ada7

Re-introduced changes that were reverted between 2.7.0-alpha1 and 2.7.0-RC1:

New features:

  • (Experimental) Added a new suite of interfaces, starting with CredentialRepositoryV2. RelyingParty can now be configured with a CredentialRepositoryV2 instance instead of a CredentialRepository instance. This changes the result of the RelyingParty builder to RelyingPartyV2. CredentialRepositoryV2 and RelyingPartyV2 enable a suite of new features:
    • CredentialRepositoryV2 does not assume that the application has usernames, instead username support is modular. In addition to the CredentialRepositoryV2, RelyingPartyV2 can be optionally configured with a UsernameRepository as well. If a UsernameRepository is not set, then RelyingPartyV2.startAssertion(StartAssertionOptions) will fail at runtime if StartAssertionOptions.username is set.
    • CredentialRepositoryV2 uses a new interface CredentialRecord to represent registered credentials, instead of the concrete RegisteredCredential class (although RegisteredCredential also implements CredentialRecord). This provides implementations greater flexibility while also automating the type conversion to PublicKeyCredentialDescriptor needed in startRegistration() and startAssertion().
    • RelyingPartyV2.finishAssertion() returns a new type AssertionResultV2 with a new method getCredential(), which returns the CredentialRecord that was verified. The return type of getCredential() is generic and preserves the concrete type of CredentialRecord returned by the CredentialRepositoryV2 implementation.
    • NOTE: Experimental features may receive breaking changes without a major version increase.
  • (Experimental) Added property RegisteredCredential.transports.
    • NOTE: Experimental features may receive breaking changes without a major version increase.

Artifacts built with openjdk version "17.0.14" 2025-01-21.

Pre-release 2.7.0-RC1

Pre-release 2.7.0-RC1 Pre-release
Pre-release

Choose a tag to compare

@emlun emlun released this 30 Apr 11:25
2.7.0-RC1
5b7c0a9

Changes since 2.7.0-alpha1

Breaking changes:

  • Removed the suite of experimental interfaces related with CredentialRepositoryV2. These will be postponed to minor release 2.8 instead.
  • Removed property RegisteredCredential.transports.

Changes since 2.6.0

New features:

  • Added overloaded setter RelyingPartyBuilder.origins(Optional<Set<String>>).
  • Added support for the CTAP2 credProtect extension.
  • Added support for the prf extension.
  • (Experimental) Added option FinishRegistrationOptions.isConditionalCreate to allow UP=0 in registration response for registration ceremonies with mediation: "conditional".
    • NOTE: Experimental features may receive breaking changes without a major version increase.

Artifacts built with openjdk version "17.0.14" 2025-01-21.

Experimental release 2.7.0-alpha1

Pre-release

Choose a tag to compare

@emlun emlun released this 30 Jan 14:16
2.7.0-alpha1
b1fa6ca

Re-introduced changes that were reverted between 2.6.0-alpha8 and 2.6.0-RC1:

  • (Experimental) Added a new suite of interfaces, starting with CredentialRepositoryV2. RelyingParty can now be configured with a CredentialRepositoryV2 instance instead of a CredentialRepository instance. This changes the result of the RelyingParty builder to RelyingPartyV2. CredentialRepositoryV2 and RelyingPartyV2 enable a suite of new features:
    • CredentialRepositoryV2 does not assume that the application has usernames, instead username support is modular. In addition to the CredentialRepositoryV2, RelyingPartyV2 can be optionally configured with a UsernameRepository as well. If a UsernameRepository is not set, then RelyingPartyV2.startAssertion(StartAssertionOptions) will fail at runtime if StartAssertionOptions.username is set.
    • CredentialRepositoryV2 uses a new interface CredentialRecord to represent registered credentials, instead of the concrete RegisteredCredential class (although RegisteredCredential also implements CredentialRecord). This provides implementations greater flexibility while also automating the type conversion to PublicKeyCredentialDescriptor needed in startRegistration() and startAssertion().
    • RelyingPartyV2.finishAssertion() returns a new type AssertionResultV2 with a new method getCredential(), which returns the CredentialRecord that was verified. The return type of getCredential() is generic and preserves the concrete type of CredentialRecord returned by the CredentialRepositoryV2 implementation.
    • NOTE: Experimental features may receive breaking changes without a major version increase.
  • (Experimental) Added property RegisteredCredential.transports.
    • NOTE: Experimental features may receive breaking changes without a major version increase.

Artifacts built with openjdk version "17.0.13" 2024-10-15.

Version 2.6.0

Choose a tag to compare

@emlun emlun released this 30 Jan 10:41
2.6.0
47ceee8

webauthn-server-core:

New features:

  • Added method getParsedPublicKey(): java.security.PublicKey to
    RegistrationResult and RegisteredCredential.
    • Thanks to Jakob Heher (A-SIT) for the contribution, see #299
  • Added enum parsing functions:
    • AuthenticatorAttachment.fromValue(String): Optional<AuthenticatorAttachment>
    • PublicKeyCredentialType.fromId(String): Optional<PublicKeyCredentialType>
    • ResidentKeyRequirement.fromValue(String): Optional<ResidentKeyRequirement>
    • TokenBindingStatus.fromValue(String): Optional<TokenBindingStatus>
    • UserVerificationRequirement.fromValue(String): Optional<UserVerificationRequirement>
  • Added public builder to CredentialPropertiesOutput.
  • Added public factory function LargeBlobRegistrationOutput.supported(boolean).
  • Added public factory functions to LargeBlobAuthenticationOutput.
  • Added hints property to StartRegistrationOptions, StartAssertionOptions, PublicKeyCredentialCreationOptions and PublicKeyCredentialRequestOptions, and class PublicKeyCredentialHint to support them, to support the hints parameter introduced in WebAuthn L3: https://www.w3.org/TR/2023/WD-webauthn-3-20230927/#dom-publickeycredentialcreationoptions-hints
  • (Experimental) Added option isSecurePaymentConfirmation(boolean) to FinishAssertionOptions. When set, RelyingParty.finishAssertion() will adapt the validation logic for a Secure Payment Confirmation (SPC) response instead of an ordinary WebAuthn response. See the JavaDoc for details.
    • NOTE: Experimental features may receive breaking changes without a major version increase.

webauthn-server-attestation:

New features:

  • FidoMetadataDownloader now parses the CRLDistributionPoints extension on the application level, so the com.sun.security.enableCRLDP=true system property setting is no longer necessary.
  • Added helper function CertificateUtil.parseFidoSernumExtension for parsing serial number from enterprise attestation certificates.

Artifacts built with openjdk version "17.0.13" 2024-10-15.

Pre-release 2.6.0-RC1

Pre-release 2.6.0-RC1 Pre-release
Pre-release

Choose a tag to compare

@emlun emlun released this 16 Jan 14:48
2.6.0-RC1
0cbba57

Changes since 2.6.0-alpha8

webauthn-server-core:

Breaking changes:

  • Removed the suite of experimental interfaces related with CredentialRepositoryV2. These will be postponed to minor release 2.7 instead.
  • Removed property RegisteredCredential.transports.
  • Removed property credProps.authenticatorDisplayName.
  • Removed credProps extension from assertion extension outputs.

webauthn-server-attestation:

New features:

  • FidoMetadataDownloader now parses the CRLDistributionPoints extension on the application level, so the com.sun.security.enableCRLDP=true system property setting is no longer necessary.
  • Added helper function CertificateUtil.parseFidoSernumExtension for parsing serial number from enterprise attestation certificates.

Changes since 2.5.4

webauthn-server-core:

New features:

  • Added method getParsedPublicKey(): java.security.PublicKey to RegistrationResult and RegisteredCredential.
    • Thanks to Jakob Heher (A-SIT) for the contribution, see #299
  • Added enum parsing functions:
    • AuthenticatorAttachment.fromValue(String): Optional<AuthenticatorAttachment>
    • PublicKeyCredentialType.fromId(String): Optional<PublicKeyCredentialType>
    • ResidentKeyRequirement.fromValue(String): Optional<ResidentKeyRequirement>
    • TokenBindingStatus.fromValue(String): Optional<TokenBindingStatus>
    • UserVerificationRequirement.fromValue(String): Optional<UserVerificationRequirement>
  • Added public builder to CredentialPropertiesOutput.
  • Added public factory function LargeBlobRegistrationOutput.supported(boolean).
  • Added public factory functions to LargeBlobAuthenticationOutput.
  • Added hints property to StartRegistrationOptions, StartAssertionOptions, PublicKeyCredentialCreationOptions and PublicKeyCredentialRequestOptions, and class PublicKeyCredentialHint to support them, to support the hints parameter introduced in WebAuthn L3: https://www.w3.org/TR/2023/WD-webauthn-3-20230927/#dom-publickeycredentialcreationoptions-hints
  • (Experimental) Added option isSecurePaymentConfirmation(boolean) to FinishAssertionOptions. When set, RelyingParty.finishAssertion() will adapt the validation logic for a Secure Payment Confirmation (SPC) response instead of an ordinary WebAuthn response. See the JavaDoc for details.
    • NOTE: Experimental features may receive breaking changes without a major version increase.

webauthn-server-attestation:

New features:

  • FidoMetadataDownloader now parses the CRLDistributionPoints extension on the application level, so the com.sun.security.enableCRLDP=true system property setting is no longer necessary.
  • Added helper function CertificateUtil.parseFidoSernumExtension for parsing serial number from enterprise attestation certificates.

Artifacts built with openjdk version "17.0.13" 2024-10-15.

Experimental release 2.6.0-alpha8

Pre-release

Choose a tag to compare

@emlun emlun released this 02 Dec 15:35
2.6.0-alpha8
45a4ca6

Ported changes from release 2.5.4:

webauthn-server-attestation:

Fixes:

  • AuthenticatorGetInfo.algorithms now silently ignores unknown COSEAlgorithmIdentifier and PublicKeyCredentialType values instead of rejecting the MDS BLOB.

Artifacts built with openjdk version "17.0.13" 2024-10-15.

Version 2.5.4

Choose a tag to compare

@emlun emlun released this 02 Dec 14:32
2.5.4
504a8e8

webauthn-server-attestation:

Fixes:

  • AuthenticatorGetInfo.algorithms now silently ignores unknown COSEAlgorithmIdentifier and PublicKeyCredentialType values instead of rejecting the MDS BLOB.

Artifacts built with openjdk version "17.0.13" 2024-10-15.

Pre-release 2.5.4-RC1

Pre-release 2.5.4-RC1 Pre-release
Pre-release

Choose a tag to compare

@emlun emlun released this 25 Nov 14:26
2.5.4-RC1
e562c01

webauthn-server-attestation:

Fixes:

  • AuthenticatorGetInfo.algorithms now silently ignores unknown COSEAlgorithmIdentifier and PublicKeyCredentialType values instead of rejecting the MDS BLOB.

Artifacts built with openjdk version "17.0.13" 2024-10-15.

Experimental release 2.6.0-alpha7

Pre-release

Choose a tag to compare

@emlun emlun released this 06 Sep 09:37
2.6.0-alpha7
49f0aeb

Ported changes from release 2.5.3:

webauthn-server-attestation:

Fixes:

  • FidoMetadataDownloader no longer rejects FIDO MDS metadata BLOBs with unknown properties.

Artifacts built with openjdk version "17.0.12" 2024-07-16.