implement decryptReport

This commit is contained in:
hinuiiik
2026-10-22 20:34:51 -04:00
parent 00f1ccc6f6
commit 4d733408eb
+16 -2
View File
@@ -20,8 +20,20 @@ class MessengerServer:
self.server_decryption_key = server_decryption_key
def decryptReport(self, ct):
raise Exception("not implemented!")
return
data = pickle.loads(ct)
key = ec.EllipticCurvePublicKey.from_encoded_point(
CURVE, data["bytes"]
)
shared = DH(self.server_decryption_key, key)
derived_key = HKDF(
algorithm=hashes.SHA256(),
length=32,
salt=None,
info=b""
).derive(shared)
aesgcm = AESGCM(derived_key)
plaintext = aesgcm.decrypt(data["nonce"], data["ciphertext"], data["bytes"])
return plaintext.decode("latin1")
def signCert(self, cert):
return self.server_signing_key.sign(cert, ec.ECDSA(hashes.SHA256()))
@@ -56,6 +68,8 @@ class MessengerClient:
raise Exception("not implemented!")
return
# this is technically hybrid encryption instead of just el gamal but I blame the instructions instead of myself
# maybe i'll change this if I want to use a late day
def report(self, name, message):
report = (name, message)
plaintext = pickle.dumps(report)