encryption: Add key printing support for queried keys.

This commit is contained in:
poljar (Damir Jelić) 2018-05-06 13:00:07 +02:00
parent 18bd62cb90
commit 9e86ccc3f7

View file

@ -126,21 +126,43 @@ def matrix_olm_command_cb(server_name, buffer, args):
if not command or command == "info": if not command or command == "info":
olm = server.olm olm = server.olm
device_msg = (" - Device ID: {}\n".format(server.device_id)
if server.device_id else "") if not args or args[0] == "private":
id_key = partition_key(olm.account.identity_keys()["curve25519"]) device_msg = (" - Device ID: {}\n".format(server.device_id)
fp_key = partition_key(olm.account.identity_keys()["ed25519"]) if server.device_id else "")
message = ("{prefix}matrix: Identity keys:\n" id_key = partition_key(olm.account.identity_keys()["curve25519"])
" - User: {user}\n" fp_key = partition_key(olm.account.identity_keys()["ed25519"])
"{device_msg}" message = ("{prefix}matrix: Identity keys:\n"
" - Identity key: {id_key}\n" " - User: {user}\n"
" - Fingerprint key: {fp_key}\n").format( "{device_msg}"
prefix=W.prefix("network"), " - Identity key: {id_key}\n"
user=server.user, " - Fingerprint key: {fp_key}\n").format(
device_msg=device_msg, prefix=W.prefix("network"),
id_key=id_key, user=server.user,
fp_key=fp_key) device_msg=device_msg,
W.prnt(server.server_buffer, message) id_key=id_key,
fp_key=fp_key)
W.prnt(server.server_buffer, message)
elif args[0] == "all":
for user, keys in olm.device_keys.items():
message = ("{prefix}matrix: Identity keys:\n"
" - User: {user}\n").format(
prefix=W.prefix("network"),
user=user)
W.prnt(server.server_buffer, message)
for key in keys:
id_key = partition_key(key.keys["curve25519"])
fp_key = partition_key(key.keys["ed25519"])
device_msg = (" - Device ID: {}\n".format(
key.device_id) if key.device_id else "")
message = ("{device_msg}"
" - Identity key: {id_key}\n"
" - Fingerprint key: {fp_key}\n\n").format(
device_msg=device_msg,
id_key=id_key,
fp_key=fp_key)
W.prnt(server.server_buffer, message)
else: else:
message = ("{prefix}matrix: Command not implemented.".format( message = ("{prefix}matrix: Command not implemented.".format(
prefix=W.prefix("error"))) prefix=W.prefix("error")))