Hi Ilari,
You're correct about the ambiguity in 6844-bis regarding whitespace handling in 
the issuevalue production rule. I sent a message to LAMPS 
(https://www.ietf.org/mail-archive/web/spasm/current/msg01466.html) to get this 
corrected in 6844-bis, referencing your email.

Thanks,
Corey

On 7/18/18, 10:29 AM, "Acme on behalf of Ilari Liusvaara" 
<[email protected] on behalf of [email protected]> wrote:

    On Wed, Jul 18, 2018 at 01:17:26PM +0000, Salz, Rich wrote:
    > 
    > Would you be willing and able to write, or co-write, a 6844 errata
    > that corrected that document so that the current ACME CAA draft was
    > compliant?  At the WG meeting yesterday, we got feedback that this
    > would be acceptable to the Area Director, and everyone agrees it
    > is a much better solution than waiting for the 6844bis document to
    > become an RFC.
    
    In my opinion, there is significant difference between:
    
    - Fixing the ambiguous behavior in RFC6844 grammar in a way that
      does not change the language (which means the set of strings that
      are valid in grammar) but fixes the ambiguous cases.
    - Changing the RFC6844 language to make it parse the examples from
      ACME-CAA as the draft intends them to be parsed. Even if this
      grammar would match the examples from the document.
    
    As reminded by recent change from validation-methods to
    validationmethods, there apparently are DNS provoders that do check
    what is entered against the language.
    
    
    The no-change-to-language fixed grammar changes would look something
    like (omitting unchanged symbols 'domain', 'parameter' and 'space' and
    any symbols transitively used by those three):
    
    issuevalue = space [domain space] [";" space [parameters space]]
    parameters = parameter *(mspace parameter)
    mspace = 1*(SP / HTAB)
    
    (Hope I got that right) But this does not parse the examples from
    ACME-CAA correctly. For example:
    
    issue 
"http://scanmail.trustwave.com/?c=4062&d=vM7P2-IdIAR0aSvyVFMWRv8J93MJNR3h5pH_j3xvMw&s=5&u=http%3a%2f%2fexample%2enet%3b
 accounturi=https://example.net/account/1234; validationmethods=dns-01"
    
    would parse as:
    
    space: ""
    domain: 
"http://scanmail.trustwave.com/?c=4062&d=vM7P2-IdIAR0aSvyVFMWRv8J93MJNR3h5s2t1CttZA&s=5&u=http%3a%2f%2fexample%2enet";
    space: ""
    space: ""
    parameters:
        parameter:
                tag: "accounturi"
                value: 
"https://scanmail.trustwave.com/?c=4062&d=vM7P2-IdIAR0aSvyVFMWRv8J93MJNR3h5sP91CtsPg&s=5&u=https%3a%2f%2fexample%2enet%2faccount%2f1234%3b";
        mspace: " "
        parameter:
                tag: "validationmethods"
                value: "dns-01"
    space: ""
    
    Note the trailing ';' in the account URI.
    
    
    Notes about the construction:
    
    - The reason why the space symbols are inside optional blocks is
      to avoid two back-to-back space symbols, as that would allow
      ambiguous parse of some strings.
    - I introduced mspace symbol (short from "mandatory space") to
      stand for at least one space in order to separate parameters..
    
    
    I also found a minor issue with the RFC6844bis grammar: It has
    possibility of having two back-to-back *WSP symbols that can
    compete with each other. One possible fix would be:
    
    issuevalue = *WSP [domain *WSP] [";" *WSP [parameters *WSP]]
    
    Which ensures there is always a non-empty symbol (domain or
    parameters, neither of which can be empty and neither of which
    can start or end with WSP) between two *WSP sybmbols.
    
    
    -Ilari
    
    _______________________________________________
    Acme mailing list
    [email protected]
    
https://scanmail.trustwave.com/?c=4062&d=vM7P2-IdIAR0aSvyVFMWRv8J93MJNR3h5pao3SFjNA&s=5&u=https%3a%2f%2fwww%2eietf%2eorg%2fmailman%2flistinfo%2facme
    

_______________________________________________
Acme mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/acme

Reply via email to