def create_check(signature, amount): """ Creates a check to sign """ random_number = random.getrandbits(128) check = { "amount": amount, "signature_customer_public_key": signature, "merchant_id": "01", "token": random_number } return serialize(check).decode()
def test_merchant_changed_check(self): path = "./cryptobank/test/functionalTests/keys/" """ Check that a merchant cannot change the content of a check without the bank noticing """ client_key = Key.import_key_from_path(path + "customer.pubkey") with open(path + "check.json", "r") as file_: signed_check = unserialize(file_.readline()) check_signature = signed_check["signature"] base64_check = signed_check["base64_check"] #self.assertTrue(verify_signature_check(client_key, check_signature, base64_check)) # check that if someone has changed something to the check, the bank does not accept the check false_check = unserialize(base64_check) false_check["amount"] = 100 false_check_64 = serialize(false_check).decode() self.assertFalse(verify_signature_check(client_key, check_signature, false_check_64))