26 lines
468 B
Python
26 lines
468 B
Python
from Crypto.PublicKey import RSA
|
|
from Crypto.Signature import pss
|
|
from Crypto.Hash import SHA256
|
|
|
|
with open("alice_public.pem", 'rb') as file:
|
|
alice_pub = RSA.import_key(file.read())
|
|
|
|
with open('sigtext', 'rb') as file:
|
|
data = file.read()
|
|
|
|
m = data[:18]
|
|
sig = data[18:]
|
|
|
|
h = SHA256.new(m)
|
|
|
|
verifier = pss.new(alice_pub)
|
|
|
|
try:
|
|
verifier.verify(h, sig)
|
|
print("Signature is valid")
|
|
|
|
except (ValueError, TypeError) as e:
|
|
print("Signature is invalid")
|
|
|
|
|