import os
from Crypto.Hash import SHA256
from Crypto.PublicKey import ECC
from Crypto.Signature import DSS


MESSAGE = b"action=read_flag"

key = ECC.generate(curve="P-256")
signature = DSS.new(key, "fips-186-3").sign(SHA256.new(MESSAGE))
used = {signature}

print(signature.hex())

try:
    candidate = bytes.fromhex(input("signature: "))
    if candidate in used:
        raise ValueError
    DSS.new(key.public_key(), "fips-186-3").verify(SHA256.new(MESSAGE), candidate)
    print(os.getenv("FLAG", "Alpaca{dummy}"))
except ValueError:
    print("invalid signature")
