This commit is contained in:
hinuiiik
2026-10-19 18:34:58 -04:00
commit 6ffb34d022
2 changed files with 158 additions and 0 deletions
+113
View File
@@ -0,0 +1,113 @@
from cryptography.hazmat.primitives.asymmetric import ec
from messenger import MessengerServer
from messenger import MessengerClient
def error(s):
print("=== ERROR: " + s)
print("Initializing Server")
server_sign_sk = ec.generate_private_key(ec.SECP256R1())
server_enc_sk = ec.generate_private_key(ec.SECP256R1())
server = MessengerServer(server_sign_sk, server_enc_sk)
server_sign_pk = server_sign_sk.public_key()
server_enc_pk = server_enc_sk.public_key()
print("Initializing Users")
alice = MessengerClient("alice", server_sign_pk, server_enc_pk)
bob = MessengerClient("bob", server_sign_pk, server_enc_pk)
carol = MessengerClient("carol", server_sign_pk, server_enc_pk)
print("Generating Certs")
certA = alice.generateCertificate()
certB = bob.generateCertificate()
certC = carol.generateCertificate()
print("Signing Certs")
sigA = server.signCert(certA)
sigB = server.signCert(certB)
sigC = server.signCert(certC)
print("Distributing Certs")
try:
alice.receiveCertificate(certB, sigB)
alice.receiveCertificate(certC, sigC)
bob.receiveCertificate(certA, sigA)
bob.receiveCertificate(certC, sigC)
carol.receiveCertificate(certA, sigA)
carol.receiveCertificate(certB, sigB)
except:
error("certificate verification issue")
print("Testing incorrect cert issuance")
mallory = MessengerClient("mallory", server_sign_pk, server_enc_pk)
certM = mallory.generateCertificate()
try:
alice.receiveCertificate(certM, sigC)
except:
print("successfully detected bad signature!")
else:
error("accepted certificate with incorrect signature")
print("Testing Reporting")
content = "inappropriate message contents"
reportPT, reportCT = alice.report("Bob", content)
decryptedReport = server.decryptReport(reportCT)
if decryptedReport != reportPT:
error("report did not decrypt properly")
print(reportPT)
print(decryptedReport)
else:
print("Reporting test successful!")
print("Testing a conversation")
header, ct = alice.sendMessage("bob", "Hi Bob!")
msg = bob.receiveMessage("alice", header, ct)
if msg != "Hi Bob!":
error("message 1 was not decrypted correctly")
header, ct = alice.sendMessage("bob", "Hi again Bob!")
msg = bob.receiveMessage("alice", header, ct)
if msg != "Hi again Bob!":
error("message 2 was not decrypted correctly")
header, ct = bob.sendMessage("alice", "Hey Alice!")
msg = alice.receiveMessage("bob", header, ct)
if msg != "Hey Alice!":
error("message 3 was not decrypted correctly")
header, ct = bob.sendMessage("alice", "Can't talk now")
msg = alice.receiveMessage("bob", header, ct)
if msg != "Can't talk now":
error("message 4 was not decrypted correctly")
header, ct = bob.sendMessage("alice", "Started the homework too late :(")
msg = alice.receiveMessage("bob", header, ct)
if msg != "Started the homework too late :(":
error("message 5 was not decrypted correctly")
header, ct = alice.sendMessage("bob", "Ok, bye Bob!")
msg = bob.receiveMessage("alice", header, ct)
if msg != "Ok, bye Bob!":
error("message 6 was not decrypted correctly")
header, ct = bob.sendMessage("alice", "I'll remember to start early next time!")
msg = alice.receiveMessage("bob", header, ct)
if msg != "I'll remember to start early next time!":
error("message 7 was not decrypted correctly")
print("conversation completed!")
print("Testing handling an incorrect message")
h, c = alice.sendMessage("bob", "malformed message test")
m = bob.receiveMessage("alice", h, ct)
if m != None:
error("didn't reject incorrect message")
else:
print("success!")
print("Testing complete")