From a56fc64ea5ed0f641627218ec474b23981b26eb4 Mon Sep 17 00:00:00 2001 From: Goffi Date: Wed, 18 Mar 2020 19:54:07 +0100 Subject: [PATCH] core (memory/encryption): namespace can now be specified to test a specific algorithm in isEncryptionRequested --- sat/memory/encryption.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sat/memory/encryption.py b/sat/memory/encryption.py index 9756f905..9f5906f2 100644 --- a/sat/memory/encryption.py +++ b/sat/memory/encryption.py @@ -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