make the signal funcs under MessageClient into static methods so they the first arg isn't self

This commit is contained in:
hinuiiik
2026-10-22 22:51:21 -04:00
parent cd3dcaf4a3
commit 0076fe7803
+9
View File
@@ -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