diff options
-rw-r--r-- | plugins/gpg/__init__.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/plugins/gpg/__init__.py b/plugins/gpg/__init__.py index 873aa285..f1b97575 100644 --- a/plugins/gpg/__init__.py +++ b/plugins/gpg/__init__.py @@ -35,12 +35,14 @@ Version: GnuPG class Plugin(BasePlugin): def init(self): self.contacts = {} - # a dict of {full-JID: 'signed'/'valid'/'invalid'} + # a dict of {full-JID: 'signed'/'valid'/'invalid'/'disabled'} # Whenever we receive a signed presence from a JID, we add it to this # dict, this way we know if we can encrypt the messages we will send to # this JID. # If that resource sends a non-signed presence, then we remove it # from that dict and stop encrypting our messages. + # 'disabled' means that the user do NOT want to encrypt its messages + # even if the key is valid. self.gpg = gnupg.GPG() self.keyid = self.config.get('keyid', '') or None self.passphrase = self.config.get('passphrase', '') or None @@ -52,11 +54,13 @@ class Plugin(BasePlugin): self.add_event_handler('conversation_say_after', self.on_conversation_say) self.add_event_handler('conversation_msg', self.on_conversation_msg) + self.add_tab_command(ConversationTab, 'gpg', self.command_gpg, "Usage: /gpg <force|disable>\nGpg: Force or disable gpg encryption with this fulljid.", lambda the_input: the_input.auto_completion(['force', 'disable'])) ConversationTab.add_information_element('gpg', self.display_encryption_status) def cleanup(self): self.send_unsigned_presence() ConversationTab.remove_information_element('gpg') + self.del_tab_command(ConversationTab, 'gpg') def sign_presence(self, presence): """ @@ -151,6 +155,10 @@ class Plugin(BasePlugin): return '' return ' GPG Key: %s' % self.contacts[jid.full] + def command_gpg(self, args): + # TODO + return + def remove_gpg_headers(self, text): lines = text.splitlines() while lines[0].strip() != '': |