diff --git a/src/chat_control.py b/src/chat_control.py
index aabcee9d2..86a3c1e12 100644
--- a/src/chat_control.py
+++ b/src/chat_control.py
@@ -1516,6 +1516,11 @@ class ChatControl(ChatControlBase):
banner_name_tooltip.set_tip(banner_name_label, label_tooltip)
def _toggle_gpg(self):
+ if not self.gpg_is_active and not self.contact.keyID:
+ dialogs.ErrorDialog(_('No GPG key assigned'),
+ _('No GPG key is assigned to this contact. So you cannot '
+ 'encrypt messages with GPG.'))
+ return
ec = gajim.encrypted_chats[self.account]
if self.gpg_is_active:
# Disable encryption
diff --git a/src/dialogs.py b/src/dialogs.py
index b8ed950dd..0253cd9da 100644
--- a/src/dialogs.py
+++ b/src/dialogs.py
@@ -3898,11 +3898,17 @@ class GPGInfoWindow:
info = _('The contact\'s key (%s) does not match the key '
'assigned in Gajim.') % keyID[:8]
image = 'security-low-big.png'
+ elif not keyID:
+ # No key assigned nor a key is used by remote contact
+ verification_status = _('No GPG key assigned')
+ info = _('No GPG key is assigned to this contact. So you cannot '
+ 'encrypt messages.')
+ image = 'security-low-big.png'
else:
msgenc, error = gajim.connections[account].gpg.encrypt('test', [keyID])
if error:
verification_status = _('''Contact's identity NOT verified''')
- info = _('GPG Key is assigned to this contact, but you do not '
+ info = _('GPG key is assigned to this contact, but you do not '
'trust his key, so message cannot be encrypted. Use '
'your GPG client to trust this key.')
image = 'security-low-big.png'