From 0076fe7803efbae00fba622572e99a3f0cf415b5 Mon Sep 17 00:00:00 2001 From: hinuiiik Date: Thu, 22 Oct 2026 22:51:21 -0400 Subject: [PATCH] make the signal funcs under MessageClient into static methods so they the first arg isn't self --- messenger.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/messenger.py b/messenger.py index 247ef8d..9eb3e79 100644 --- a/messenger.py +++ b/messenger.py @@ -90,6 +90,7 @@ class MessengerClient: self.dh = GENERATE_DH() self.certificate = None + @staticmethod def RatchetInitAlice(state, SK, bob_dh_public_key): state.DHs = GENERATE_DH() state.DHr = bob_dh_public_key @@ -100,6 +101,7 @@ class MessengerClient: state.PN = 0 state.MKSKIPPED = {} + @staticmethod def RatchetInitBob(state, SK, bob_dh_key_pair): state.DHs = bob_dh_key_pair state.DHr = None @@ -111,17 +113,20 @@ class MessengerClient: state.PN = 0 state.MKSKIPPED = {} + @staticmethod def RatchetSendKey(state): state.CKs, mk = KDF_CK(state.CKs) Ns = state.Ns state.Ns += 1 return Ns, mk + @staticmethod def RatchetEncrypt(state, plaintext, AD): Ns, mk = RatchetSendKey(state) header = HEADER(state.DHs, state.PN, Ns) return header, ENCRYPT(mk, plaintext, CONCAT(AD, header)) + @staticmethod def RatchetReceiveKey(state, header): mk = TrySkippedMessageKeys(state, header) if mk != None: @@ -134,10 +139,12 @@ class MessengerClient: state.Nr += 1 return mk + @staticmethod def RatchetDecrypt(state, header, ciphertext, AD): mk = RatchetReceiveKey(state, header) return DECRYPT(mk, ciphertext, CONCAT(AD, header)) + @staticmethod def TrySkippedMessageKeys(state, header): if (header.dh, header.n) in state.MKSKIPPED: mk = state.MKSKIPPED[header.dh, header.n] @@ -146,6 +153,7 @@ class MessengerClient: else: return None + @staticmethod def SkipMessageKeys(state, until): if state.Nr + MAX_SKIP < until: raise Error() @@ -155,6 +163,7 @@ class MessengerClient: state.MKSKIPPED[state.DHr, state.Nr] = mk state.Nr += 1 + @staticmethod def DHRatchet(state, header): state.PN = state.Ns state.Ns = 0