def report(user, message, reporter, sk_r, aux, pk_s, pk_j, test): auth = tweepy.OAuthHandler(CONSUMER_TOKEN, CONSUMER_SECRET) with open("messages.cfg", "rb") as f: lines = f.read().splitlines() auth.set_access_token(lines[1], lines[2]) api = tweepy.API(auth) user_id = api.get_user(user).id m = parse_direct_message(api.direct_messages(full_text=True, count=50)[0], str(user_id)) # parse each DM as msg + tag messages = list(map(parse_message_tag, m)) (g, o) = aux for m in messages: if type(m[1]) is not tuple: continue if m[1][0] == message: sig = str_to_frank(m[1][1], G) if dmf.Verify(pk_s, sk_r, pk_j, m[1][0], sig, aux): response = requests.post(ADDRESS + "report", data = {"frank" : DELIMITER.join(m[1][1]), "sender" : user, "reporter" : reporter, "message" : message, "test": test}) print(response.text) else: print("Error: Message was not reported due to bad verification.") return print("Error: Message not found.")
def test_frank(): msg = "hello" _, g, o = setup() aux = (g, o) (pk_s, sk_s) = dmf.KeyGen(aux) (pk_r, sk_r) = dmf.KeyGen(aux) (pk_j, sk_j) = dmf.KeyGen(aux) sig = dmf.Frank(sk_s, pk_r, pk_j, msg, aux) assert dmf.Verify(pk_s, sk_r, pk_j, msg, sig, aux) assert dmf.Judge(pk_s, pk_r, sk_j, msg, sig, aux)
def test_jforge(): msg = "hello" _, g, o = setup() aux = (g, o) (pk_s, sk_s) = dmf.KeyGen(aux) (pk_r, sk_r) = dmf.KeyGen(aux) (pk_j, sk_j) = dmf.KeyGen(aux) sig = dmf.JForge(pk_s, pk_r, sk_j, msg, aux) assert dmf.Verify(pk_s, sk_r, pk_j, msg, sig, aux) assert dmf.Judge(pk_s, pk_r, sk_j, msg, sig, aux) (pi, T, U, A, B) = sig spok = dmf.Create_DMF_SPoK(pk_s, pk_j, T, U, A, aux) assert spok.verify(msg, pi)
def read(sk_r, aux, pk_s, pk_j, count=1, user=None): with open("blacklist.txt", "r") as f: blacklist = f.read().splitlines() if user is not None and user in blacklist: print("User " + user + " has been blocked.") return # Setup Twitter API auth = tweepy.OAuthHandler(CONSUMER_TOKEN, CONSUMER_SECRET) with open("messages.cfg", "rb") as f: lines = f.read().splitlines() auth.set_access_token(lines[1], lines[2]) api = tweepy.API(auth) if user is None: user_id = None else: user_id = api.get_user(user).id m = parse_direct_message(api.direct_messages(full_text=True, count=50)[0], str(user_id)) if len(m) < count: print("There are fewer than " + str(count) + " messages available.") m = m[:count] # parse each DM as msg + tag messages = list(map(parse_message_tag, m)) for message in messages: if type(message[1]) is not tuple: print("Message is not well-formed.") else: if user is None and message[0] in blacklist: print("User " + message[0] + " has been blocked.") else: sig = str_to_frank(message[1][1], G) if dmf.Verify(pk_s, sk_r, pk_j, message[1][0], sig, aux): if user is None: print(message[0] + ": " + message[1][0]) else: print(user + ": " + message[1][0]) else: print("Message could not be verified.")