core (memory/encryption): namespace can now be specified to test a specific algorithm in isEncryptionRequested

This commit is contained in:
Goffi 2020-03-18 19:54:07 +01:00
commit a56fc64ea5

View file

@ -437,13 +437,22 @@ class EncryptionHandler(object):
mess_data[C.MESS_KEY_ENCRYPTED] = True
return mess_data
def isEncryptionRequested(self, mess_data):
def isEncryptionRequested(self, mess_data, namespace=None):
"""Helper method to check if encryption is requested in an outgoind message
@param mess_data(dict): message data for outgoing message
@param namespace(str, None): if set, check if encryption is requested for the
algorithm specified
@return (bool): True if the encryption flag is present
"""
return bool(mess_data.get(C.MESS_KEY_ENCRYPTION, False))
encryption = mess_data.get(C.MESS_KEY_ENCRYPTION)
if encryption is None:
return False
# we get plugin even if namespace is None to be sure that the key exists
plugin = encryption['plugin']
if namespace is None:
return True
return plugin.namespace == namespace
def isEncrypted(self, mess_data):
"""Helper method to check if an incoming message has the e2e encrypted flag