Skip to content

Commit 4f7164e

Browse files
committed
Support unknown values for all enums in MDS
1 parent ec1337d commit 4f7164e

10 files changed

Lines changed: 95 additions & 0 deletions

NEWS

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,22 @@ New features:
1515
** Thanks to GitHub users mmoayyed and ErlendNukke for the contribution, see
1616
https://github.com/Yubico/java-webauthn-server/pull/468 and
1717
https://github.com/Yubico/java-webauthn-server/pull/467
18+
* Added `UNKNOWN` constant to all enums in `com.yubico.fido.metadata`:
19+
** `AttachmentHint`
20+
** `AuthenticationAlgorithm`
21+
** `AuthenticatorAttestationType`
22+
** `CtapCertificationId`
23+
** CtapPinUvAuthProtocolVersion`
24+
** CtapVersion`
25+
** ProtocolFamily`
26+
** PublicKeyRepresentationFormat`
27+
** TransactionConfirmationDisplayType`
1828

1929
Fixes:
2030

2131
* Added `@since` tags to `AuthenticatorStatus` and `FidoMetadataService` javadoc.
32+
* All `com.yubico.fido.metadata` enums now deserialize unknown values to
33+
`UNKOWN` instead of crashing the parser.
2234

2335

2436
== Version 2.8.1 ==

webauthn-server-attestation/src/main/java/com/yubico/fido/metadata/AttachmentHint.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.yubico.fido.metadata;
22

3+
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
34
import com.fasterxml.jackson.annotation.JsonValue;
45

56
/**
@@ -22,6 +23,14 @@
2223
*/
2324
public enum AttachmentHint {
2425

26+
/**
27+
* (NOT DEFINED IN SPEC) Placeholder for any unknown {@link AttachmentHint} value.
28+
*
29+
* @since 2.9.0
30+
*/
31+
@JsonEnumDefaultValue
32+
UNKNOWN(0, "UNKNOWN"),
33+
2534
/**
2635
* This flag MAY be set to indicate that the authenticator is permanently attached to the FIDO
2736
* User Device.

webauthn-server-attestation/src/main/java/com/yubico/fido/metadata/AuthenticationAlgorithm.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.yubico.fido.metadata;
22

3+
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
34
import com.fasterxml.jackson.annotation.JsonValue;
45

56
/**
@@ -15,6 +16,14 @@
1516
*/
1617
public enum AuthenticationAlgorithm {
1718

19+
/**
20+
* (NOT DEFINED IN SPEC) Placeholder for any unknown {@link AuthenticationAlgorithm} value.
21+
*
22+
* @since 2.9.0
23+
*/
24+
@JsonEnumDefaultValue
25+
UNKNOWN(0, "UNKNOWN"),
26+
1827
/**
1928
* @see <a
2029
* href="https://fidoalliance.org/specs/common-specs/fido-registry-v2.2-rd-20210525.html#authentication-algorithms">FIDO

webauthn-server-attestation/src/main/java/com/yubico/fido/metadata/AuthenticatorAttestationType.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.yubico.fido.metadata;
22

3+
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
34
import com.fasterxml.jackson.annotation.JsonValue;
45

56
/**
@@ -15,6 +16,14 @@
1516
*/
1617
public enum AuthenticatorAttestationType {
1718

19+
/**
20+
* (NOT DEFINED IN SPEC) Placeholder for any unknown {@link AuthenticatorAttestationType} value.
21+
*
22+
* @since 2.9.0
23+
*/
24+
@JsonEnumDefaultValue
25+
UNKNOWN(0, "UNKNOWN"),
26+
1827
/**
1928
* Indicates full basic attestation, based on an attestation private key shared among a class of
2029
* authenticators (e.g. same model). Authenticators must provide its attestation signature during

webauthn-server-attestation/src/main/java/com/yubico/fido/metadata/CtapCertificationId.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.yubico.fido.metadata;
22

3+
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
34
import com.fasterxml.jackson.annotation.JsonValue;
45

56
/**
@@ -15,6 +16,14 @@
1516
*/
1617
public enum CtapCertificationId {
1718

19+
/**
20+
* (NOT DEFINED IN SPEC) Placeholder for any unknown {@link CtapCertificationId} value.
21+
*
22+
* @since 2.9.0
23+
*/
24+
@JsonEnumDefaultValue
25+
UNKNOWN("UNKNOWN"),
26+
1827
/**
1928
* @see <a
2029
* href="https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-20210615.html#sctn-feature-descriptions-certifications">Client

webauthn-server-attestation/src/main/java/com/yubico/fido/metadata/CtapPinUvAuthProtocolVersion.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.yubico.fido.metadata;
22

3+
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
34
import com.fasterxml.jackson.annotation.JsonValue;
45

56
/**
@@ -11,6 +12,14 @@
1112
*/
1213
public enum CtapPinUvAuthProtocolVersion {
1314

15+
/**
16+
* (NOT DEFINED IN SPEC) Placeholder for any unknown {@link CtapPinUvAuthProtocolVersion} value.
17+
*
18+
* @since 2.9.0
19+
*/
20+
@JsonEnumDefaultValue
21+
UNKNOWN(0),
22+
1423
/**
1524
* Represents PIN/UV Auth Protocol One.
1625
*

webauthn-server-attestation/src/main/java/com/yubico/fido/metadata/CtapVersion.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.yubico.fido.metadata;
22

3+
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
4+
35
/**
46
* Enumeration of CTAP versions.
57
*
@@ -9,6 +11,14 @@
911
*/
1012
public enum CtapVersion {
1113

14+
/**
15+
* (NOT DEFINED IN SPEC) Placeholder for any unknown {@link CtapVersion} value.
16+
*
17+
* @since 2.9.0
18+
*/
19+
@JsonEnumDefaultValue
20+
UNKNOWN,
21+
1222
/**
1323
* @see <a
1424
* href="https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-20210615.html#authenticatorGetInfo">Client

webauthn-server-attestation/src/main/java/com/yubico/fido/metadata/ProtocolFamily.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.yubico.fido.metadata;
22

3+
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
34
import com.fasterxml.jackson.annotation.JsonValue;
45

56
/**
@@ -11,6 +12,14 @@
1112
*/
1213
public enum ProtocolFamily {
1314

15+
/**
16+
* (NOT DEFINED IN SPEC) Placeholder for any unknown {@link ProtocolFamily} value.
17+
*
18+
* @since 2.9.0
19+
*/
20+
@JsonEnumDefaultValue
21+
UNKNOWN("UNKNOWN"),
22+
1423
/**
1524
* @see <a
1625
* href="https://fidoalliance.org/specs/mds/fido-metadata-statement-v3.0-ps-20210518.html#dom-metadatastatement-protocolfamily">FIDO

webauthn-server-attestation/src/main/java/com/yubico/fido/metadata/PublicKeyRepresentationFormat.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.yubico.fido.metadata;
22

3+
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
34
import com.fasterxml.jackson.annotation.JsonValue;
45

56
/**
@@ -15,6 +16,14 @@
1516
*/
1617
public enum PublicKeyRepresentationFormat {
1718

19+
/**
20+
* (NOT DEFINED IN SPEC) Placeholder for any unknown {@link PublicKeyRepresentationFormat} value.
21+
*
22+
* @since 2.9.0
23+
*/
24+
@JsonEnumDefaultValue
25+
UNKNOWN(0, "UNKNOWN"),
26+
1827
/**
1928
* @see <a
2029
* href="https://fidoalliance.org/specs/common-specs/fido-registry-v2.2-rd-20210525.html#public-key-representation-formats">FIDO

webauthn-server-attestation/src/main/java/com/yubico/fido/metadata/TransactionConfirmationDisplayType.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.yubico.fido.metadata;
22

3+
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
34
import com.fasterxml.jackson.annotation.JsonValue;
45

56
/**
@@ -18,6 +19,15 @@
1819
*/
1920
public enum TransactionConfirmationDisplayType {
2021

22+
/**
23+
* (NOT DEFINED IN SPEC) Placeholder for any unknown {@link TransactionConfirmationDisplayType}
24+
* value.
25+
*
26+
* @since 2.9.0
27+
*/
28+
@JsonEnumDefaultValue
29+
UNKNOWN(0, "UNKNOWN"),
30+
2131
/**
2232
* @see <a
2333
* href="https://fidoalliance.org/specs/common-specs/fido-registry-v2.2-rd-20210525.html#transaction-confirmation-display-types">FIDO

0 commit comments

Comments
 (0)