make the signal funcs under MessageClient into static methods so they the first arg isn't self
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user