jdev - 2019-12-17


  1. goffi

    Hi. I'm implemeting OMEMO media sharing, and it seems that there is an incoherence: doc says that key is 32 bytes and IV 12 bytes, in hex it's 64 + 24 = 88 but the example URL fragment is 96 bytes, and a quick test with Gajim give me a fragment of 96 bytes too. So it the XEP text wrong or am I missing something?

  2. goffi

    (talking about the URL in example at https://xmpp.org/extensions/inbox/omemo-media-sharing.html#aesgcm)

  3. Daniel

    we originally used 16 byte IVs; but the aes-gcm spec says you should use 12

  4. Daniel

    so for legacy reasons everyone keeps sending 16 for now; but have read support for 12

  5. Daniel

    except chatsecure i think which only supports reading 16

  6. Daniel

    which is why we haven’t switched over yet

  7. goffi

    ok so for reading both should be implemented. For writting is it still recommanded to use 16 or should I use 12? Is there any client not supporting reading 12?

  8. Daniel

    yes chatsecure; last time i checked

  9. goffi

    ah right sorry you just say that above :)

  10. goffi

    Thanks Daniel

  11. renken

    are there tests provided to verify the correctness of a given RFC implementation? I'm working on implementing RFC 6122 and I'd like to improve and extend my test cases. The dependency on Unicode makes it a bit complex to come up with a complete set of tests

  12. Zash

    Hm, wasn't there a project for that?

  13. Zash

    There's a few test cases in in https://github.com/igniterealtime/jxmpp/tree/master/jxmpp-strings-testframework/src/main/resources/xmpp-strings/jids

  14. Zash

    Not sure about the coverage of Unicode yet tho

  15. renken

    the ones you provided are very helpful, thanks Zash.

  16. Zash

    And then there's the thing with RFC 6122 being obsoleted by RFC 7622 but I don't know if anyone is there yet

  17. renken

    PRECIS isn't implemented yet as far as I know

  18. renken

    libidn2 team were thinking about releasing libprecis but no news. ICU team's case is vague too https://unicode-org.atlassian.net/browse/ICU-11981 https://libidn.gitlab.io/libidn2/manual/libidn2.html#Stringprep-and-libidn2

  19. Zash

    I've got that ICU ticket bookmarked 🙂

  20. renken

    :D

  21. renken

    prosody discussed PRECIS as well https://issues.prosody.im/533

  22. Guus

    didn't sco0ter do PRCIES?

  23. Guus

    didn't sco0ter do PRECIS?

  24. Zash

    libidn being obsoleted by libidn2 when we're using the stringprep stuff .. looks like we're going with ICU for now

  25. Guus

    (in Babbler?)

  26. renken

    Guus, I'm not familiar with sco0ter sorry. Zash, it leaves us with a hybrid implementation. 6122 for localpart and resourcepart, 7622 for domainpart (IDNA2008)

  27. Zash

    There were rumors of some Rust folks maybe planning on some PRECIS stuff

  28. Zash

    Hm?

  29. Zash

    Isn't 6122 IDNA2008 + STRINGPREP?

  30. renken

    no

  31. renken

    6122 IDNA2003 + STRINGPREP

  32. Zash

    Wasn't that what was before 6122?

  33. renken

    yeah

  34. Zash

    https://tools.ietf.org/html/rfc6122#section-1.1 sounds like IDNA2008 or do I need to read more carefully?

  35. renken

    well I follow https://tools.ietf.org/html/rfc6122#section-2.2

  36. renken

    >A domainpart consisting of a fully qualified domain name MUST be an "internationalized domain name" as defined in [IDNA2003];

  37. Zash

    > or do I need to read more carefully? No, I need make dinner. Looking at these things only leads to tears 🙁

  38. renken

    eat well

  39. Zash

    It does say > software implementations are encouraged to begin migrating to IDNA2008

  40. renken

    yeah that's what I meant by "hybrid"

  41. Zash

    I think there's also some compat options in IDNA2008 (or at least in ICU) that somehow minimizes the differences (and hopefully, pain) between '03 and '08

  42. renken

    of course. both PRECIS and IDNA2008 are backward compatible as far as I know

  43. Zash

    `UIDNA_NONTRANSITIONAL_TO_ASCII` does ... something (in ICU)

  44. renken

    their docs are a bit vague ...

  45. rion

    Can you guys make a page maybe on xsf wiki how to live with c/c++ and without PRECIS implementation?

  46. rion

    It seems some distros are eager to remove old libidn :(

  47. renken

    if distros are eager to remove libidn, it's because the libidn team is pushing idn2? no? iirc libidn also offers stringprep whereas libidn2 doesn't offer anything (neither stringprep nor precis)

  48. renken

    an alternative would be to use ICU because it offers (deprecated) idna2003 support, idna2008 and stringprep

  49. Zash

    ICU also has "confusable" mapping stuff

  50. renken

    such as?

  51. Zash

    http://www.unicode.org/reports/tr39/

  52. renken

    oh yeah that's neat. it helps with address spoofing and forging

  53. Zash

    Right, that, like if someone joins as "Zаsh" (using a cyrillic small letter a)

  54. renken

    I assume XMPP users are nice people and delay security considerations until later oops

  55. renken

    oh yeah Zash, apparently HenryⅣ `\u2163` gets mapped to Henryiv in stringprep however it's illegal in precis. interesting

  56. renken

    henry*

  57. Zash

    Fun

  58. jonas’

    and this is why we don’t go there (PRECIS)

  59. Zash

    I'd like to have the option but I'm not sure if there's any rush

  60. renken

    I don't know. I'm still a beginner but personally PRECIS seems more organized and structured properly

  61. renken

    care to elaborate, jonas’?

  62. jonas’

    renken, PRECIS and Stringprep aren’t compatible. if some entities are on PRECIS, and some are on stringprep, chaos ensues

  63. jonas’

    in addition, PRECIS isn’t pinned to a unicode version, so different entities on different unicode versions coudl very well be of different opinions on what constitutes a "legal" string

  64. Zash

    Bad enough things happen already

  65. Zash

    🤖️ says hi

  66. jonas’

    #robotface

  67. renken

    I see. thanks for the explanation

  68. renken

    sad unicode life

  69. jonas’

    read also: https://mailarchive.ietf.org/arch/msg/xmpp/a-WhzOTyOq168GujQHgzQ1-DURI

  70. Zash

    jonas’, how much chaos do we get if we do the postel thing?

  71. jonas’

    postel?

  72. Zash

    "be conservative in what you send, liberal in what you receive"

  73. jonas’

    helps only partially

  74. jonas’

    it helps with the plain out rejection, but if unicode comes up with different normalisation mappings, you’ll get havoc with user passwords and stuff

  75. Zash

    Altho here I mean being Very Strict when creating things locally, while not being as strict with incoming data

  76. jonas’

    I’d also expect a MUC service to enforce a single unicode version across all nicknames it allows

  77. Zash

    Yeah, that.

  78. Zash

    And locally created users.

  79. Zash

    usernames*

  80. Zash

    Hm did we already add that to Prosody for MUC?

  81. Zash

    Ah yeah (trunk tho)

  82. Zash

    and room localparts

  83. jonas’

    flow, is there any documentation on creating a MAXS plugin?