omemo: add an api in plugin_e2ee to get the fingerprint(s) of a jid
This commit is contained in:
parent
5c4571751e
commit
518ba47e2a
1 changed files with 44 additions and 0 deletions
|
@ -178,6 +178,14 @@ class E2EEPlugin(BasePlugin):
|
||||||
help=trust_msg.format(name=self.encryption_short_name, state=state),
|
help=trust_msg.format(name=self.encryption_short_name, state=state),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.api.add_command(
|
||||||
|
self.encryption_short_name + '_fingerprint',
|
||||||
|
self._command_show_fingerprints,
|
||||||
|
usage='[jid]',
|
||||||
|
short='Show %s fingerprint(s) for a JID.' % self.encryption_short_name,
|
||||||
|
help='Show %s fingerprint(s) for a JID.' % self.encryption_short_name,
|
||||||
|
)
|
||||||
|
|
||||||
ConversationTab.add_information_element(
|
ConversationTab.add_information_element(
|
||||||
self.encryption_short_name,
|
self.encryption_short_name,
|
||||||
self._display_encryption_status,
|
self._display_encryption_status,
|
||||||
|
@ -238,6 +246,33 @@ class E2EEPlugin(BasePlugin):
|
||||||
'Info',
|
'Info',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def _show_fingerprints(self, jid: JID) -> None:
|
||||||
|
"""Display encryption fingerprints for a JID."""
|
||||||
|
fprs = self.get_fingerprints(jid)
|
||||||
|
if len(fprs) == 1:
|
||||||
|
self.api.information(
|
||||||
|
'Fingerprint for %s: %s' % (jid, fprs[0]),
|
||||||
|
'Info',
|
||||||
|
)
|
||||||
|
elif fprs:
|
||||||
|
self.api.information(
|
||||||
|
'Fingerprints for %s:\n\t%s' % (jid, '\n\t'.join(fprs)),
|
||||||
|
'Info',
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
self.api.information(
|
||||||
|
'No fingerprints to display',
|
||||||
|
'Info',
|
||||||
|
)
|
||||||
|
|
||||||
|
@command_args_parser.quoted(0, 1)
|
||||||
|
def _command_show_fingerprints(self, args: List[str]) -> None:
|
||||||
|
if not args and isinstance(self.api.current_tab(), self.supported_tab_types):
|
||||||
|
jid = self.api.current_tab().name
|
||||||
|
else:
|
||||||
|
jid = args[0]
|
||||||
|
self._show_fingerprints(jid)
|
||||||
|
|
||||||
@command_args_parser.quoted(2)
|
@command_args_parser.quoted(2)
|
||||||
def __command_set_state_global(self, args, state='') -> None:
|
def __command_set_state_global(self, args, state='') -> None:
|
||||||
jid, fpr = args
|
jid, fpr = args
|
||||||
|
@ -422,3 +457,12 @@ class E2EEPlugin(BasePlugin):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
|
def get_fingerprints(self, jid: JID) -> List[str]:
|
||||||
|
"""Show fingerprint(s) for this encryption method and JID.
|
||||||
|
|
||||||
|
To overload in plugins.
|
||||||
|
|
||||||
|
:returns: A list of fingerprints to display
|
||||||
|
"""
|
||||||
|
return []
|
||||||
|
|
Loading…
Reference in a new issue