import os
from Crypto.PublicKey import RSA
from Crypto.Util.number import bytes_to_long, long_to_bytes

flag = os.environ.get('FLAG', '<p>REDACTED</p>').encode()

def encrypt(m):
    m = bytes_to_long(m)
    c = pow(m, key.e, key.n)
    return long_to_bytes(c)

def decrypt(c):
    c = bytes_to_long(c)
    m = pow(c, key.d, key.n)
    return long_to_bytes(m)


key = RSA.generate(2048)
print('n =', key.n)
print('c =', encrypt(flag).hex())

while True:
    c = bytes.fromhex(input('c = '))
    try:
        assert decrypt(c).endswith(b'>')
        print('Allowed')
    except:
        print('Send HTML formatted fancy text')
