From 8fa10df31c3c2eadbcb797164890563eb8ab6c5a Mon Sep 17 00:00:00 2001 From: Francois Daoust Date: Tue, 3 Dec 2024 14:06:46 +0100 Subject: [PATCH 1/2] Fix AuthenticationExtensionsAuthenticatorInputs/Outputs CDDL According to the CDDL grammar, after a control operator (called `ctlop` in the ABNF grammar), there can only be a `type2` production: https://datatracker.ietf.org/doc/html/rfc8610#appendix-B In a `type2` production, wrapping parentheses can only be used to wrap a `type` production. `tstr => any` is a `group` production, and needs to be wrapped in curly braces or brackets. In other words, from a CDDL grammar perspective, this is an invalid type: `foo .within ( tstr => any )` This is valid: `foo .within { tstr => any }` This update fixes the CDDL type definitions that used the `.within` operator with an invalid type2. --- index.bs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.bs b/index.bs index 7fff2d1e7..3ff125805 100644 --- a/index.bs +++ b/index.bs @@ -4013,7 +4013,7 @@ This is a dictionary containing the [=client extension output=] values for zero ``` AuthenticationExtensionsAuthenticatorInputs = { - * $$extensionInput .within ( tstr => any ) + * $$extensionInput .within { tstr => any } } ``` @@ -4028,7 +4028,7 @@ This type is not exposed to the [=[RP]=], but is used by the [=client=] and [=au ``` AuthenticationExtensionsAuthenticatorOutputs = { - * $$extensionOutput .within ( tstr => any ) + * $$extensionOutput .within { tstr => any } } ``` From 5d855e79c4242c330c737f00a1f6b15c85c1fd1a Mon Sep 17 00:00:00 2001 From: Emil Lundberg Date: Wed, 11 Dec 2024 20:58:45 +0100 Subject: [PATCH 2/2] Move .within control to correct position in extension input/outputs CDDL --- index.bs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/index.bs b/index.bs index 3ff125805..82c978e0c 100644 --- a/index.bs +++ b/index.bs @@ -4013,8 +4013,8 @@ This is a dictionary containing the [=client extension output=] values for zero ``` AuthenticationExtensionsAuthenticatorInputs = { - * $$extensionInput .within { tstr => any } -} + * $$extensionInput +} .within { * tstr => any } ``` The [=CDDL=] type `AuthenticationExtensionsAuthenticatorInputs` defines a [=CBOR=] map @@ -4028,8 +4028,8 @@ This type is not exposed to the [=[RP]=], but is used by the [=client=] and [=au ``` AuthenticationExtensionsAuthenticatorOutputs = { - * $$extensionOutput .within { tstr => any } -} + * $$extensionOutput +} .within { * tstr => any } ``` The [=CDDL=] type `AuthenticationExtensionsAuthenticatorOutputs` defines a [=CBOR=] map