[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: SASL-IR (draft-siemborski-imap-sasl-initial-response-05.txt)
To my horror, I discovered that UW imapd was in violation of the following
in the SASL-IR draft:
As with any other client response, this initial client response MUST
be encoded as defined in Section 3 of [RFC3548]. It also MUST be
transmitted outside of a quoted string or literal. To send a zero-
length initial response, the client MUST send a single pad character
("="). This indicates that the response is present, but is a zero-
length string.
UW imapd simply parsed the initial response token as an astring, meaning
that it would accepted it as a quoted-string or literal. UW imapd also
did not implement "=" for zero-length initial response.
Fortunately, this doesn't actually affect anything for a compliant client.
Nothing should send a quoted-string or literal; and although UW imapd
supports EXTERNAL, nothing enables it yet so there's no worry about
zero-length initial responses. So I just fixed the problems.
Although I understand why SASL-IR prohibits quoted-string or literal, I
think that the concern was misplaced. The initial response token should
just have been an astring; the protocol is pretty clear what happens with
a literal.
Failing that, it should have been an atom. The problem is that as matters
currently stand, the BNF requires base64 in the IMAP command syntax.
This is a new requirement, and serves no good purpose. I hope that nobody
seriously intends to allows an alternative second argument to AUTHENTICATE
that is a valid atom albeit with at least one non-BASE64 character.
This is the difference between saying that
tag AUTHENTICATE FOO BAR=ZAP
is a command syntax error ("BAR=ZAP" does not match the rule) vs. an
invalid argument.
-- Mark --
http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.