implement decryptReport
This commit is contained in:
+16
-2
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user