omemo / gajim-omemo Goto Github PK
View Code? Open in Web Editor NEWGajim plugin for OMEMO Multi-End Message and Object Encryption
Gajim plugin for OMEMO Multi-End Message and Object Encryption
Images sent using HttpUpload are not encrypted, at the same time, images that are received encrypted (sent for example from Conversations) are not visible.
What devices? What happens when I click it? Even after clicking it, nothing seems to happen.
Should give feedback when clicked, and include a list of devices in a tooltip or something.
The button is also really prominently placed in the UI. Should be moved to a tab in the Contact information dialog where users can revoke individual devices.
I just got this Python error:
Traceback (most recent call last):
File "/home/r/.local/share/gajim/plugins/omemo/ui.py", line 78, in on_click
self.chat_control._show_lock_image(True, 'OMEMO', True, True, True)
File "/home/r/src/gajim/src/chat_control.py", line 2317, in _show_lock_image
self.lock_image.set_from_file(img_path)
AttributeError: 'ChatControl' object has no attribute 'lock_image'
What I did:
When chatting with someone else who also uses Gajim and OMEMO, we sometimes had the problem that Gajim started an e2e session so that messages sent from the PC ended up only on the peer's PC, but not on any of our phones. We fixed this now by disabling e2e sessions in the Gajim ACE, but maybe the plugin can do something about this. I can't remember having this problem with OTR, so maybe the OTR plugin found a way to properly disable e2e while it controls the session.
(Of course, interaction of OTR and OMEMO plugins running at the same time could also be interesting.)
Hi,
although I got python-axolotl installed, Gajim is giving me the message:
gajim.plugin_system.omemo Please install python-axolotl.
So I went to ~/.local/share/gajim/plugins/omemo/__init__.py
and changed line 44 and following to this (gajim-omemo version 0.4):
except ImportError, err:
import traceback
print(traceback.format_exc())
log.error(AXOLOTL_MISSING)
HAS_AXOLOTL = False
Please consider to do something like this in general, instead of just printing a fixed error message like AXOLOTL_MISSING. Because now it looks like the Please install python-axolotl.
just wasn't the appropriate error message (but I tried to reinstall python-axolotl and PYTHONPATH for over an hour).
python-axolotl version: 0.1.7
gajim version: 0.16.5
gajim-omemo version: 0.4
So here comes the stack trace, which gives me the ImportError: No module named symbol_database
error:
Traceback (most recent call last):
File "/home/user/.local/share/gajim/plugins/omemo/__init__.py", line 42, in <module>
from omemo.state import OmemoState
File "/home/user/opt/gajim/share/gajim/src/common/demandimport.py", line 114, in _demandimport
mod = _origimport(name, globals, locals)
File "/home/user/.local/share/gajim/plugins/omemo/omemo/state.py", line 29, in <module>
from axolotl.protocol.prekeywhispermessage import PreKeyWhisperMessage
File "/home/user/opt/gajim/share/gajim/src/common/demandimport.py", line 114, in _demandimport
mod = _origimport(name, globals, locals)
File "/home/user/opt/gajim/lib/python2.7/site-packages/python_axolotl-0.1.7-py2.7.egg/axolotl/protocol/prekeywhispermessage.py", line 5, in <module>
from .whispermessage import WhisperMessage
File "/home/user/opt/gajim/share/gajim/src/common/demandimport.py", line 112, in _demandimport
return _origimport(name, globals, locals, fromlist, level)
File "/home/user/opt/gajim/lib/python2.7/site-packages/python_axolotl-0.1.7-py2.7.egg/axolotl/protocol/whispermessage.py", line 4, in <module>
from . import whisperprotos
File "/home/user/opt/gajim/share/gajim/src/common/demandimport.py", line 112, in _demandimport
return _origimport(name, globals, locals, fromlist, level)
File "/home/user/opt/gajim/lib/python2.7/site-packages/python_axolotl-0.1.7-py2.7.egg/axolotl/protocol/whisperprotos.py", line 13, in <module>
_sym_db = _symbol_database.Default()
File "/home/user/opt/gajim/share/gajim/src/common/demandimport.py", line 86, in __getattribute__
self._load()
File "/home/user/opt/gajim/share/gajim/src/common/demandimport.py", line 58, in _load
mod = _origimport(head, globals, locals)
ImportError: No module named symbol_database```
When sending a message to another resource from gajim no OMEMO encryption is available.
“Device 1” and “Device 2“ etc. means nothing to users. Use their resource names instead as a human readable label. “Mobile”, “work”, etc. are much more relatable.
Steps to reproduce this issue:
Expected behaviour: See the message in the chat history.
Tested with ejabberd 15.10 on Debian Jessie and MAM enabled.
Thanks for the development of this great plugin.
There are too many devices on the list to fit on the screen. It takes up too much horizontal space. Should either be in a panel or a menu.
I use Gajim v0.16.5, OMEMO plugin v0.4 (same situation with 0.16/0.3).
For one contact that has OMEMO-enabled client software (Gajim with same versions or Conversations - doesn't make a difference), i don't get any controls or signs of OMEMO, although those controls and OMEMO status "enabled" are shown on the other end.
Some experimentation showed that the availability of OMEMO (buttons) depends on the XMPP server(s) in use or on their configuration:
With another contact or the same device/software contacting me over a different server i do get OMEMO buttons and the "OMEMO encryption enabled" status message.
Unlike issue 35 i don't see any connection to the presence of multiple device keys and restarting Gajim doesn't bring me those missing OMEMO buttons.
I disabled ESessions to make sure i'm not dealing with some interference between the two.
There is no menu to compare the keys and to chose what keys should be used and which should not.
The chat message logged when OMEMO encryption starts includes a broken Unicode icon here on my Debian testing system:
[15:58:20] 🔒 OMEMO encryption enabled
The character before "OMEMO" is an "unknown character" box.
This only started when I upgraded from version 0.2 to the git master.
Bundle the x64
axolotl library with the plugin
Even after spending hours on the topic of OMEMO and such the (naming of the) buttons don't make any sense to me.
The buttons/interactive elements lack tooltips.
(Only) If i know what OMEMO is, the "OMEMO" checkbox is fairly intuitive.
The "Get device keys" button is permanently gone after i pressed it once. It leaves me with the question of what i have done and how i can repeat or reverse it.
There is no clear indication of which messages were encrypted and which ones were not.
With my contact using a XMPP server that is incompatible with this plugin here (see issue 39), the "OMEMO encryption enabled/disabled" status messages sometimes seem to give false negative indication of the OMEMO session status which is not consistent with the display on the other end where my seemingly unencrypted messages are shown as encrypted.
On my system, when sending an OMEMO encrypted message to a Conversations client, there is a delay in the order of seconds.
Where does this bad performance come from? How to debug this?
When I try to install this plugin in gajim, it is downloaded, but never shows up in the list of installed plugins.
gajim 0.16.5
OMEMO can only be activated sucessfully if the "Get device keys" button got pressed. Before that i can seemingly activate OMEMO and send messages (i.e. they show up in the conversation view and i got the "OMEMO encryption enabled" status message), but they silently get swallowed and never show up on the other end.
With the OMEMO checkbox unticked i can get successful delivery (of unencrypted messages).
I'm pushing the button "Get Device Keys" but the XML console is telling me something about an auth error.
<!-- Out Di 29 Dez 2015 19:24:45 IST -->
<iq xmlns="jabber:client" to="[email protected]" type="get" id="63705162-abc3-41d8-98f7-eaa9151aff0b">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
<items node="eu.siacs.conversations.axolotl.bundles:355207054" />
</pubsub>
</iq>
<!-- In Di 29 Dez 2015 19:24:45 IST -->
<iq id='63705162-abc3-41d8-98f7-eaa9151aff0b' type='error' to='[email protected]/Gajim' from='[email protected]'>
<error type='auth'>
<not-authorized xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
<presence-subscription-required xmlns='http://jabber.org/protocol/pubsub#errors'/>
</error>
</iq>
<r xmlns='urn:xmpp:sm:2'/>
<!-- Out Di 29 Dez 2015 19:24:45 IST -->
<a xmlns="urn:xmpp:sm:2" h="170" />
I kept getting the message "Please install axolotl" even though python-axolotl was install systemwide (/usr/local/lib), in local virtualenv, both for python2 and python3.
Turns out something else is amiss. I changed the log-message above into the full traceback by changing https://github.com/omemo/gajim-omemo/blob/master/__init__.py#L45 into log.exception("crash")
.
See the following traceback, axolotl is obviously loaded but it seems like gajim hooks into the module-loading code and it goes back and fourth for a while before hitting an undefined _message
.
Traceback (most recent call last):
File "/home/anders/.local/share/gajim/plugins/omemo/init.py", line 42, in
from omemo.state import OmemoState
File "/usr/share/gajim/src/common/demandimport.py", line 114, in _demandimport
mod = _origimport(name, globals, locals)
File "/home/anders/.local/share/gajim/plugins/omemo/omemo/state.py", line 29, in
from axolotl.protocol.prekeywhispermessage import PreKeyWhisperMessage
File "/usr/share/gajim/src/common/demandimport.py", line 114, in _demandimport
mod = _origimport(name, globals, locals)
File "/usr/local/lib/python2.7/dist-packages/axolotl/protocol/prekeywhispermessage.py", line 9, in
from .whispermessage import WhisperMessage
File "/usr/share/gajim/src/common/demandimport.py", line 112, in _demandimport
return _origimport(name, globals, locals, fromlist, level)
File "/usr/local/lib/python2.7/dist-packages/axolotl/protocol/whispermessage.py", line 9, in
from . import whisperprotos
File "/usr/share/gajim/src/common/demandimport.py", line 112, in _demandimport
return _origimport(name, globals, locals, fromlist, level)
File "/usr/local/lib/python2.7/dist-packages/axolotl/protocol/whisperprotos.py", line 13, in
_sym_db = _symbol_database.Default()
File "/usr/share/gajim/src/common/demandimport.py", line 86, in getattribute
self._load()
File "/usr/share/gajim/src/common/demandimport.py", line 58, in _load
mod = _origimport(head, globals, locals)
File "/usr/local/lib/python2.7/dist-packages/google/protobuf/symbol_database.py", line 180, in
_DEFAULT = SymbolDatabase(pool=descriptor_pool.Default())
File "/usr/share/gajim/src/common/demandimport.py", line 86, in getattribute
self._load()
File "/usr/share/gajim/src/common/demandimport.py", line 58, in _load
mod = _origimport(head, globals, locals)
File "/usr/local/lib/python2.7/dist-packages/google/protobuf/descriptor_pool.py", line 65, in
_USE_C_DESCRIPTORS = descriptor._USE_C_DESCRIPTORS
File "/usr/share/gajim/src/common/demandimport.py", line 86, in getattribute
self._load()
File "/usr/share/gajim/src/common/demandimport.py", line 58, in _load
mod = _origimport(head, globals, locals)
File "/usr/local/lib/python2.7/dist-packages/google/protobuf/descriptor.py", line 47, in
_USE_C_DESCRIPTORS = getattr(_message, '_USE_C_DESCRIPTORS', False)
File "/usr/share/gajim/src/common/demandimport.py", line 86, in getattribute
self._load()
File "/usr/share/gajim/src/common/demandimport.py", line 58, in _load
mod = _origimport(head, globals, locals)
ImportError: No module named _message
Running Ubuntu 14.04, gajim 0.16.5.
~ python --version
Python 2.7.6
pip list | grep axolotl
python-axolotl (0.1.34)
python-axolotl-curve25519 (0.1)
What are your thoughts on moving/copying non-gajim code to a separate omemo package that can be used by other python software? For example, aes_gcm, state, store.
I know that it's more trouble, so I don't have any expectations, just wondering if you had an idea in mind. And thanks for the plugin!
Hi! Im using Conversations in my phone and have some accounts on my own ejabberd server. According to conversations, I activated all XEPs needed to use all functions.
Now I wanted to use OMEMO on my desktop as well and gave gajim omemo a try. When I start a chat with another OMEMO capable account on my server, there is a red shield next to the textbox that states that OMEMO is activated, but the chat is not authorized. On Conversations I get asked to verify the OMEMO key, but there is no popup etc. on gajim. Also messages from gajim to conversations appear to be unencrypted. Do I have to manually sync/check keys?
I'm using ejabberd 16.04 on my raspberry pi,
Gajim from Debian Jessie stable and gajim OMEMO from gajims plugins.
Can you give me some tips to get this working?
Just trying OMEMO with Gajim 0.16.5. Following problem: I have two chat tabs open, both with Conversations users. One shows the on/off checkbox and the shield symbol, the other doesn't. The second guy tells me my messages arrive encrypted with OMEMO, my GUI however looks like OMEMO isn't even available. In case this is relevant: the first user (with correct behaviour) has only one device key, the other has multiple.
Hi, i cant get the Plugin to work.
if i try "pip install python-axolotl" there is this error:
C:\Users\Philipp>pip2 install python-axolotl
Collecting python-axolotl
Using cached python-axolotl-0.1.7.tar.gz
Requirement already satisfied (use --upgrade to upgrade): protobuf<3.0.0-alpha-2
,>=2.6 in c:\python27\lib\site-packages (from python-axolotl)
Requirement already satisfied (use --upgrade to upgrade): pycrypto in c:\python2
7\lib\site-packages (from python-axolotl)
Collecting python-axolotl-curve25519 (from python-axolotl)
Using cached python-axolotl-curve25519-0.1.tar.gz
Requirement already satisfied (use --upgrade to upgrade): setuptools in c:\pytho
n27\lib\site-packages (from protobuf<3.0.0-alpha-2,>=2.6->python-axolotl)
Installing collected packages: python-axolotl-curve25519, python-axolotl
Running setup.py install for python-axolotl-curve25519
Complete output from command C:\Python27\python.exe -c "import setuptools, t
okenize;file='c:\users\philipp\appdata\local\temp\pip-build-fn5oko\py
thon-axolotl-curve25519\setup.py';exec(compile(getattr(tokenize, 'open', open)(
file).read().replace('\r\n', '\n'), file, 'exec'))" install --record c:
users\philipp\appdata\local\temp\pip-iezm7t-record\install-record.txt --single-v
ersion-externally-managed --compile:
running install
running build
running build_ext
building 'axolotl_curve25519' extension
creating build
creating build\temp.win32-2.7
creating build\temp.win32-2.7\Release
creating build\temp.win32-2.7\Release\curve
creating build\temp.win32-2.7\Release\curve\ed25519
creating build\temp.win32-2.7\Release\curve\ed25519\additions
creating build\temp.win32-2.7\Release\curve\ed25519\nacl_sha512
C:\Users\Philipp\AppData\Local\Programs\Common\Microsoft\Visual C++ for Pyth
on\9.0\VC\Bin\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Icurve/ed25519/nacl_i
ncludes -Icurve/ed25519/additions -Icurve/ed25519 -IC:\Python27\include -IC:\Pyt
hon27\PC /Tccurve25519module.c /Fobuild\temp.win32-2.7\Release\curve25519module.
obj
curve25519module.c
curve25519module.c(76) : error C2143: syntax error : missing ';' before 'typ
e'
curve25519module.c(78) : error C2065: 'result' : undeclared identifier
curve25519module.c(82) : error C2143: syntax error : missing '{' before '*'
curve25519module.c(100) : warning C4133: 'return' : incompatible types - fro
m 'PyObject *' to 'int *'
curve25519module.c(146) : warning C4133: 'initializing' : incompatible types
Command "C:\Python27\python.exe -c "import setuptools, tokenize;file='c:\us
ers\philipp\appdata\local\temp\pip-build-fn5oko\python-axolotl-curve25519
\setup.py';exec(compile(getattr(tokenize, 'open', open)(file).read().replace
('\r\n', '\n'), file, 'exec'))" install --record c:\users\philipp\appdata\lo
cal\temp\pip-iezm7t-record\install-record.txt --single-version-externally-manage
d --compile" failed with error code 1 in c:\users\philipp\appdata\local\temp\pip
-build-fn5oko\python-axolotl-curve25519
hope you can help me to get this running.
As a user I want to see a warning when OMEMO is enabled but the
python-axolotl
dependency is missing.
A dialog should be displayed with an instruction how to install python-axolotl
via pip.
What is this or how do I do this? The plugin manager finally successfully downloaded OMEMO after I created a ticket. Such is my life.
windows 8.1 64bit
gajim.c.ged Error while running an even handler: <bound method OtrPlugin.handle_outgoing_msg_stanza of <gotr.otrmodule.OtrPlugin object at 0x7fc537a31bd0>>
Traceback (most recent call last):
File "/home/user/gajim/src/common/ged.py", line 93, in raise_event
if handler(*args, **kwargs):
File "/home/user/.local/share/gajim/plugins/gotr/otrmodule.py", line 628, in handle_outgoing_msg_stanza
getContext(event.msg_iq.getTo()).\
File "/home/user/.local/share/gajim/plugins/gotr/potr/context.py", line 536, in getContext
self.ctxs[uid] = self.contextclass(self, uid)
File "/home/user/.local/share/gajim/plugins/gotr/otrmodule.py", line 122, in __init__
self.jid = get_jid_from_fjid(peer)
File "/home/user/.local/share/gajim/plugins/gotr/otrmodule.py", line 113, in get_jid_from_fjid
return gajim.get_room_and_nick_from_fjid(fjid)[0]
File "/home/user/gajim/src/common/gajim.py", line 264, in get_room_and_nick_from_fjid
l = jid.split('/', 1)
When a user is online with gajim and conversations, I open a chatwindow with him/her (double click on roster item), than I open a chatwindow to a specific resource (right click on the roster item, start chat, choose a resource) the following error is triggered:
Traceback (most recent call last):
File "/home/tim/.local/share/gajim/plugins/omemo/ui.py", line 78, in on_click
self.chat_control._show_lock_image(True, 'OMEMO', True, True, True)
File "/usr/share/gajim/src/chat_control.py", line 2317, in _show_lock_image
self.lock_image.set_from_file(img_path)
AttributeError: 'ChatControl' object has no attribute 'lock_image'
Hi,
Conversations is going to support OMEMO in Multi-User Chats:
OMEMO encryption works only in private (members only) conferences that are non-anonymous. You need to have presence subscription with every member of the conference. You can verify that by going into the conference details, long press every member and start a conversation with them. (Or select 'contact details' if they are already in your contact list)
The owner of a conference can make a public conference private by going into the conference details and hit the settings button (the one with the gears) and select both private and members only.
It would be awesome if gajim could support omemo in muc too.
Everytime I restart Gajim I will have to reenable the OMEMO checkbox. Please add an option to activate OMEMO on default.
Hi guys I'm sorry to bring this up again, but i cannot install OMEMO plugin via the plugin manager on gajim-nightly. I added the gajim unstable repo in my Debian 8 jessie, installed via sudo pip2 the axolotl, and messages show a sucsessfull installation, and OMEMO shows up as installed when enabling it from the plugin, but i got the warning in the textbox about the python-axolotl. The plugin does not check and hitting configure returns an empty box doing nothing, so it is not working. Any ideas?
sudo pip2 install python-axolotl --upgrade
[sudo] password for santiago:
Requirement already up-to-date: python-axolotl in /usr/local/lib/python2.7/dist-packages
Requirement already up-to-date: pycrypto in /usr/lib/python2.7/dist-packages (from python-axolotl)
Requirement already up-to-date: python-axolotl-curve25519 in /usr/local/lib/python2.7/dist-packages (from python-axolotl)
Requirement already up-to-date: protobuf>=3.0.0.b2 in /usr/local/lib/python2.7/dist-packages (from python-axolotl)
Cleaning up...
I also tried to remove all gajim folder in .config and .local and purging/reinstalling it, so...
cheers!
Hey guys,
a few days ago I upgraded my Ubuntu from 15.10 to 16.04. Since then something strange happened with gajim and omemo:
Gajim fails to start and I get a traceback that looks like this:
File "gajim.py", line 533, in <module>
interface.run()
File "/usr/share/gajim/src/gui_interface.py", line 2733, in run
gajim.plugin_manager = plugins.PluginManager()
File "/usr/share/gajim/src/plugins/helpers.py", line 129, in __call__
cls.instance=super(Singleton, cls).__call__(*args,**kw)
File "/usr/share/gajim/src/plugins/pluginmanager.py", line 104, in __init__
pc = PluginManager.scan_dir_for_plugins(path)
File "/usr/share/gajim/src/plugins/helpers.py", line 114, in wrapper
result = f(*args, **kwargs)
File "/usr/share/gajim/src/plugins/pluginmanager.py", line 454, in scan_dir_for_plugins
module = __import__(module_name)
File "/usr/share/gajim/src/common/demandimport.py", line 95, in _demandimport
return _import(name, globals, locals, fromlist, level)
File "/home/awachtel/.local/share/gajim/plugins/omemo/__init__.py", line 42, in <module>
from omemo.state import OmemoState
File "/usr/share/gajim/src/common/demandimport.py", line 114, in _demandimport
mod = _origimport(name, globals, locals)
File "/home/awachtel/.local/share/gajim/plugins/omemo/omemo/state.py", line 29, in <module>
from axolotl.protocol.prekeywhispermessage import PreKeyWhisperMessage
File "/usr/share/gajim/src/common/demandimport.py", line 114, in _demandimport
mod = _origimport(name, globals, locals)
File "/usr/local/lib/python2.7/dist-packages/axolotl/protocol/prekeywhispermessage.py", line 9, in <module>
from .whispermessage import WhisperMessage
File "/usr/share/gajim/src/common/demandimport.py", line 112, in _demandimport
return _origimport(name, globals, locals, fromlist, level)
File "/usr/local/lib/python2.7/dist-packages/axolotl/protocol/whispermessage.py", line 9, in <module>
from . import whisperprotos
File "/usr/share/gajim/src/common/demandimport.py", line 112, in _demandimport
return _origimport(name, globals, locals, fromlist, level)
File "/usr/local/lib/python2.7/dist-packages/axolotl/protocol/whisperprotos.py", line 21, in <module>
serialized_pb=_b('\n\x19WhisperTextProtocol.proto\x12\ntextsecure\"b\n\x0eWhisperMessage\x12\x12\n\nratchetKey\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63ounter\x18\x02 \x01(\r\x12\x17\n\x0fpreviousCounter\x18\x03 \x01(\r\x12\x12\n\nciphertext\x18\x04 \x01(\x0c\"\x8f\x01\n\x14PreKeyWhisperMessage\x12\x16\n\x0eregistrationId\x18\x05 \x01(\r\x12\x10\n\x08preKeyId\x18\x01 \x01(\r\x12\x16\n\x0esignedPreKeyId\x18\x06 \x01(\r\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x13\n\x0bidentityKey\x18\x03 \x01(\x0c\x12\x0f\n\x07message\x18\x04 \x01(\x0c\"t\n\x12KeyExchangeMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0f\n\x07\x62\x61seKey\x18\x02 \x01(\x0c\x12\x12\n\nratchetKey\x18\x03 \x01(\x0c\x12\x13\n\x0bidentityKey\x18\x04 \x01(\x0c\x12\x18\n\x10\x62\x61seKeySignature\x18\x05 \x01(\x0c\"E\n\x10SenderKeyMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\titeration\x18\x02 \x01(\r\x12\x12\n\nciphertext\x18\x03 \x01(\x0c\"c\n\x1cSenderKeyDistributionMessage\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\titeration\x18\x02 \x01(\r\x12\x10\n\x08\x63hainKey\x18\x03 \x01(\x0c\x12\x12\n\nsigningKey\x18\x04 \x01(\x0c\x42\x37\n&org.whispersystems.libaxolotl.protocolB\rWhisperProtos')
File "/usr/local/lib/python2.7/dist-packages/google/protobuf/descriptor.py", line 828, in __init__
_message.default_pool.AddSerializedFile(self.serialized_pb)
AttributeError: 'module' object has no attribute 'default_pool'
To me this looks as if omemo was trying to recover something from my messaging history, but fails. I tried to reinstall gajim (version 0.16.5 now from the ubuntu repos) and to reinstall the omemo plugin. Still the same problem.
I would prefer not to lose my history. If it is inevitable, how would I even remove it?
I keep all my python packages synced aganist PyPI via pip, so maybe there was an update somewhere there which is unrelated to my upgrade to Ubuntu 16.04 …
When I send a message from Gajim, I can see it in my account in Conversations (only unencrypted yet, see other issue).
The same is true for unencrypted messages sent in Conversations. If I send encrypted messages in Conversations, though, I can't see them in Gajim.
The server is Prosody 0.10 with mod_carbons active.
Gajim version is 0.16 on Lubuntu 15.04.
Without needing to be a programmer or compile something is there a less painful way to download something to unzip or copy OMEMO plugin to a windows directory? Plugin manager is horribly slow! Gajim keeps freezing.
For conversations that are opened immediately when Gajim starts (because they were open last time), OMEMO prints
jabber.ralfj.de ⇒ No OMEMO dev_keys for contact@server
even if that contact does have OMEMO keys - actually, keys that the plugin even knows about. OMEMO seems to work fine in these conversations nevertheless.
I have the problem that with my server omemo does not seem to work. As far as I'm aware omemo only requires pubsub on the server side, which is enabled. It's running latest ejabberd (16.01).
When communicating from my server to an account at jabber.ccc.de (both with gajim-omemo) then encryption works in one direction (from me to the other server), but not in the other. The other user does not see the OMEMO controls in the chat window.
When we both use jabber.ccc.de it works in both directions.
I have a peer where messages are sent unencrypted even though I have checked the "OMEMO" checkbox. Conversations shows no padlock on these messages.
There is no log output about this. I guess I need to somehow enable more debug logs?
This is with ff6f7d8 of the plugin.
Steps to reproduce:
create account
get device keys, connect, whatever you please
disconnect account
rename account
connect
fail
File "/home/anybody/.local/share/gajim/plugins/omemo/init.py", line 85, in get_omemo_state
conn = sqlite3.connect(db_path, check_same_thread=False)
OperationalError: unable to open database file
manifest.ini
and pkgs/PKGBUILD
are still set to 0.4
I just found your nice plugin for gajim and tested a bit.
Looks really promising (working nicely so far), but what I did not like is that the OMEMO keys are stored as part of the local configuration.
Using something like python-keyring
to store the keys in the most secure location for the specific platform would certainly be a good idea.
Don't know if it is already on your todo, just some feedback ;)
Right now, it can happen that even though the "OMEMO" box is ticked, messages are sent unencrypted. This is kind of visible due to the lack of a shield to the left of the text field, but the trouble is that sometimes, even when the shield is missing, messages are sent OMEMO-encrypted.
When the OMEMO checkbox is set, it should never send an unencrypted message. This is to prevent the user from accidentally disclosing important information across an insecure channel.
Furthermore, for incoming messages, it should be possible to see whether they were OMEMO encrypted and authenticated - for example, with a little padlock next to the nickname, or so. The same could then also be used for outgoing messages, for further clarity and symmetry.
I just installed the plugin from current git.
I received the keys (button shows "clear devices" now), and when the other end writes an OMEMO-encrypted message, I can read it.
However, regardless of whether the check next to OMEMO is set or not, Gajim always sends unencrypted messages.
Gajim version 0.16 on Lubuntu.
The currently deployed version of sqlite by gajim is from 2013 and does not support the WITHOUT ROWID
feature on Windows. There're two options:
WITHOUT ROWID
. Create a migration + tests which will not wreck the database of the non-windows usersSee also here
The title pretty much says it all: Sometimes when I receive an OMEMO message for a conversation that is in background, I do get a notification for it on my screen. However, when I then select the tab with that conversation, there is no new message. My phone shows the message.
OS: Ubuntu 16.04 xenial
Python: Python 2.7.11+
PIP: pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
Gajim: 0.16.5
$ sudo -H pip list | grep python-axolotl
python-axolotl (0.1.35)
python-axolotl-curve25519 (0.1)
$ python -c "import axolotl"
If you would like me to run any more commands to get information about my system I would be glad to provide their outputs.
After installing the gajim-omemo
plugin via the Gajim UI I saw the warning and installed python-axolotl
via PIP and rebooted.
However when I reopened Gajim and went to enable the plugin the warning ("Warning: Please install python-axolotl.") was still there. In the system information block above, you will see how I verified that python-axolotl
was installed via PIP and that I could import the axolotl
module in the Python REPL.
The following error is shown when I start Gajim with "./launch.sh", with the git master version of OMEMO:
10.01.2016 15:57:57 (W) gajim.plugin_system.omemo [JABBER-SERVER] → Device list needs updating
10.01.2016 15:58:05 (E) gajim.c.ged Error while running an even handler: <bound method OmemoPlugin.message_received of <omemo.OmemoPlugin object at 0x7f763f64ff50>>
Traceback (most recent call last):
File "/home/r/src/gajim/src/common/ged.py", line 93, in raise_event
if handler(*args, **kwargs):
File "/home/r/src/gajim/src/plugins/helpers.py", line 107, in wrapper
result = f(*args, **kwargs)
File "/home/r/.local/share/gajim/plugins/omemo/__init__.py", line 139, in message_received
gui = self.ui_list[account].get(jid, None)
KeyError: u'[JABBER-SERVER]'
10.01.2016 15:58:05 (E) gajim.c.ged Error while running an even handler: <bound method OmemoPlugin.message_received of <omemo.OmemoPlugin object at 0x7f763f64ff50>>
Traceback (most recent call last):
File "/home/r/src/gajim/src/common/ged.py", line 93, in raise_event
if handler(*args, **kwargs):
File "/home/r/src/gajim/src/plugins/helpers.py", line 107, in wrapper
result = f(*args, **kwargs)
File "/home/r/.local/share/gajim/plugins/omemo/__init__.py", line 139, in message_received
gui = self.ui_list[account].get(jid, None)
KeyError: u'[JABBER-SERVER]'
I never even tried using OMEMO encryption with that server (it's a fairly minor account), so it may well be that the server doesn't support PEP properly. I don't really care ;-) but these python exceptions looked fishy.
When I press "Get Device Keys", it sometimes takes up to 30 seconds until the button disappears. That makes it look like pressing the button did not do anything. There should always be some immediate reaction to signal to the user: Yep, I got you, working on it.
For example, the button could turn into some text, "Fetching Device Keys... " (or mayb cancelling makes no sense).
Hi,
I'm using Conversations on Android and gajim + OMEMO plugin on two PCs (Fedora 23) with a self-hosted prosody server.
OMEMO encryption is enabled on all clients.
At least with one contact, however, the OMEMO encrypted messages only appear on Conversations. I can send messages with both clients and apparently they are successfully sent and received by the contact. But if he responds, the message only appears in Conversations.
I had similar problems with different contacts and the impression that gajim+omemo just not catches all messages.
Here is some output from `gajim -v', I think it is too much, but hope you can figure it out, nevertheless. During that time messages were sent but didn't appear in the chat window of gajim.
Thanks for fixing,
silberzwiebel
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.