On Tue Apr 28 12:04:54 2009, Leonid Evdokimov wrote:
Roster v10: [[email protected]]
Roster v20: [[email protected], [email protected]]
Roster v30: [[email protected]]

Hash(Roster v10) == Hash(Roster v30)


And this is okay, since a client that says "I have Hash(Roster v10)" has the correct roster even if it's actually "Hash(Roster v30)" that the server has.


I think, this collision contradicts with the letter of the XEP:

| The server MUST ensure that each roster modification will result in
| a different version and that the version associated with a given
| roster modification will be different from version associated with any
| previous roster modification for this session


Yes...


So, `Hash(Roster)` recommendation in `Implementation Guidelines` should be replaced with something like `Hash(Nonce || Roster)` to follow the letter of the XEP. And I see no good reason to use `Hash` if `Nonce` is
used.

No, I think the text you quote above is wrong.

Once you allow for Hash(Roster), it's possible to basically drop the requirement for unique "ver" for each roster modification, within a session or otherwise.

Dave.
--
Dave Cridland - mailto:[email protected] - xmpp:[email protected]
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade

Reply via email to