XSF Discussion - 2022-09-27


  1. Guus

    Example 26 in https://xmpp.org/extensions/xep-0178.html#example-26 shows an empty response being represented by a '=' character, "as shown in RFC 6120. I'm seeing the same example in RFC 6120 9.2.2 (https://www.rfc-editor.org/rfc/rfc6120#section-9.2.2), but where is that defined? Isn't the base64 encoding of an empty string an empty string?

  2. flow

    Guus, I think it is, but the designers of the rfc probably want to distinguish between an initial repsonse of the empty string and no intial response

  3. flow

    Guus, I think it is, but the designers of the rfc probably wanted to be able to distinguish between an initial repsonse of the empty string and no intial response

  4. flow

    Guus, I think it is, but the designers of the rfc probably wanted to be able to distinguish between an initial repsonse being the empty string and no intial response

  5. flow

    Guus, see rfc6120 § 6.4.2

  6. Guus

    ah, ace.

  7. Guus

    thanks

  8. Zash

    So <auth></auth> and <auth/> means NULL and <auth>=</auth> means empty string.

  9. Zash

    So <auth></auth> and <auth/> means no value and <auth>=</auth> means empty string.

  10. MattJ

    Interestingly SASL2 does it differently (empty element vs absent element)

  11. flow

    which kind seems to be a saner design

  12. flow

    which seems to be a saner design

  13. Guus

    Zash, I'd think that <auth/></auth> is forbidden by 6.4.2?

  14. Zash

    How?

  15. flow

    I would hope that we consider <element></element> and <element/> equal everywhere

  16. Guus

    not using '=' ,I mean

  17. Guus

    6.4.2 seems to state that 'zero-length' response MUST be represented with an '=' ?

  18. flow

    zero-length response on the sasl layer

  19. flow

    not on the XMPP layer

  20. Zash

    as in base64("") → "="

  21. Zash

    but base64(null) → "", sorta

  22. Zash

    aka <auth/>

  23. flow

    I get how this is confusing, but I believe <auth></auth> (and <auth/>) means "no initial data on the sasl layer", and <auth>=</auth> initial data on the sasl layer that is the empty string

  24. Zash

    correct

  25. flow

    I get how this is confusing, but I believe <auth></auth> (and <auth/>) means "no initial data on the sasl layer", and <auth>=</auth> means "initial data on the sasl layer that is the empty string"

  26. Guus

    ok, thanks

  27. flow

    I get how this is confusing, but I believe <auth></auth> (and <auth/>) means "no initial data on the sasl layer", and <auth>=</auth> means "initial data on the sasl layer with a length of 0"