“Profanity” is an XMPP app. (For those who got the wrong idea about the title)

What I use:

  • Debian with Profanity (preferred for the proper keyboard and TUI)
  • Android with Snikket

What my low-tech comrades use:

  • iOS with Snikket

It’s a bit of a disaster. One iOS-Snikket user gets my msgs but never a notification. Another iOS-Snikket user is plagued with that error msg (some bogus msg about OMEMO being unsupported). My comrades are at the edge of sanity since I’m the one who imposed xmpp+omemo on them, and they have little tolerance for all the problems.

I’m not sure what to try next. I would hate to replace Profanity because it’s the only decent text based option with official debian support. Would it help if the iOS users switch from Snikket to Monocles?

  •  poVoq   ( @poVoq@slrpnk.net ) 
    link
    fedilink
    4
    edit-2
    6 months ago

    The iOS Snikket app notifications only work with a Snikket (or specially prepared Prosody) server. Sadly it uses a non-standard way to deliver these as iOS is a bit complicated to work with in that regard.

    You could ask the iOS users to try: https://monal-im.org/ (Edit: btw the login issue with the SLRPNK ejabberd server was fixed last month)

    At least notifications should work more reliable with Monal, although it still lacks some other features compared to the Snikket app (a rebranded Siskin). I am not sure what causes the OMEMO error though as I am not a iOS user.

    • The server is snikket.chat.

      I am not sure what causes the OMEMO error though as I am not a iOS user.

      I believe Profanity is mostly to blame for those errors. Profanity loses track of keys and fingerprints of other users, and I think what it does is encrypts the msg to myself, then transmits it without encrypting to the recipient. Then the recipient gets a msg that’s encrypted to others but they cannot decrypt it. Then to worsen matters it seems XMPP uses the same incorrect error message for many different situations. Profanity really needs to change so if any of the recipients keys are not found, it should refuse to send the msg. I see a bogus error on my end as well, and the fix is to disable OMEMO the re-enable it (/OMEMO end; /OMEMO start).

      In any case, thanks for the suggestion. I’ll see if I can get someone to try that app. I cannot be fussy about features. I really just need text msgs to work.

      •  poVoq   ( @poVoq@slrpnk.net ) 
        link
        fedilink
        4
        edit-2
        6 months ago

        Hmm, yes if Profanity forgets the public keys of other chat participants then it can not encrypt messages for them. But it seems odd that Profanity would lose those keys. Most people complain about too many keys in XMPP apps ;) Is it possible to replicate the issue in Profanity so that you could open a bug report?

        Otherwise, assuming you want to stick to TUI clients, maybe try https://poez.io/ ? It seems to be packages for Debian as well. There is also a new project that might be worth a try: https://github.com/paulfariello/aparte/

        • You question forced me to revisit this and take a closer look. I have in my notes “If someone’s fingerprint is untrusted, they will get an encrypted msg that they cannot read.” So I entered a 1:1 window with the one person who only ever gets errors from me, entered /omemo fingerprint, and it simply showed the person’s fingerprint. Then I did the same for someone who has fewer issues with me, and printed next to their fingerprint is “(trusted)”. Ah ha! The other acct has an untrusted fingerprint and Profanity does a shitty job of informing the user. The absense of a “(trusted)” when asking for the fingerprint is the crucial indicator.

          To answer your question, I think keys are managed automatically. I never had to add a key. But I have had to trust fingerprints. In the new version of profanity it’s possible to enter /omemo trustmode blind. That would also solve my problem but I don’t want to be sloppy. So I have to guide the other user to their own fingerprint and confirm it.

          (edit)
          Well this is bizarre. There are a couple people who I can talk to in Profanity just fine with OMEMO enabled, and their fingerprint also lacks the “(trusted)” next to it. Yet my trustmode is “manual”.

          • One other thought. I was under the (possibly faulty) impression that the first login of a snikket client helps the omemo process. Have you logged in with the mobile client yet?

            I’ve had mixed results with omemo shenanigans on snikket iOS. Not sure how well PWAs work on iOS, but I considered encouraging my users to try one over the native client.

            • I started with the snikket android app, which I actually rely on for inbound messages because if my desktop is shutdown when a msg arrives, Profanity will never get it. I occassionally send a msg using the Snikket app and it has a better success rate than Profanity.