On Mon, Jul 16, 2018 at 08:08:24PM -0700, Roland Shoemaker wrote:
> I know this is quite late but could we reserve some time for a
> discussion of the (possible) pending issues with regard to the
> parameter format mismatch between ACME-CAA and 6844 and possible
> solutions.

I took a look at the issue:

The RFC 6844 grammar is ambiguous due to incorrect multiplicities.
As far as I can see, there is no erratum for this.

As an example, consider the multiple-parameter example from the
ACME-CAA document:

issue "example.net; accounturi=https://example.net/account/2345; 
validationmethods=http-01"

This has unique valid meanings for both RFC6844 and RFC6844bis
grammars, but the two are different! Even taking additional constraint
that accounturi value is an uri is no help.

Now, under RFC6844bis rules, one can presumably rewrite this rule into:

issue 
"example.net;accounturi=https://example.net/account/2345;validationmethods=http-01";

The RFC6844bis parse is still the same, but now there are 18(!)
possible meanings under RFC6844 rules. One of those is the same as
the above. However, what I think is the most sensible way to
fix the RFC6844 grammar gives different meaning from the first
example (this can not alter the first example, because there the
meaning is unique already). And restriction to URI does not help
here either.

Another rewrite under RFC6844bis rules would be:

issue "example.net;accounturi=https://example.net/account/2345 ; 
validationmethods=http-01"

RFC6844bis parse is still the same, but RFC6844 rules would reject this
as invalid.



RFC6844 and RFC6844bis grammars have all of:

- Strings that are valid in RFC6844 but not RFC6844bis.
- Strings that are valid in RFC6844bis but not RFC6844.
- Strings that have unique different meanings for RFC6844 and
  RFC6844bis.
- Strings that have unque meaning in RFC6844bis, but 
  multiple meanings in RFC6844, all different from the
  unique meaning in RFC6844bis.


If one fixes the RFC6844 grammar in most obvious way (by disallowing
zero space between parameters, which is the source of ambiguous cases),
then:

- Strings that are valid in RFC6844(fixed) but not RFC6844bis.
- Strings that are valid in RFC6844bis but not RFC6844(fixed).
- Strings that have unique different meanings for RFC6844(fixed) and
  RFC6844bis.

Since the language is not changed by the fix, the last two cases
with unfixed RFC6844 are collapsed into the last case.



-Ilari

_______________________________________________
Acme mailing list
Acme@ietf.org
https://www.ietf.org/mailman/listinfo/acme

Reply via email to