def create_claim_password_request(self): request = self.create_password_transaction_request() self.oracle.handle_request(request) transactions = LockedPasswordTransaction(self.oracle.db).get_all() self.assertEqual(len(transactions), 1) transaction = transactions[0] pwtxid = transaction['pwtxid'] data = json.loads(transaction['json_data']) guess = { 'password': '******', 'address': "1AtY44R7exbYnXARs3xSEJuFdEVUMXwpUN" } rsa_pubkey = data['rsa_pubkey'] key = Util.construct_pubkey_from_data(rsa_pubkey) rsa_hash = hashlib.sha256(json.dumps(rsa_pubkey)).hexdigest() encrypted_guess = key.encrypt(json.dumps(guess), 0)[0] base64_encrypted_guess = base64.encodestring(encrypted_guess) passwords = json.dumps({rsa_hash: base64_encrypted_guess}) message = self.create_guess_message(pwtxid, passwords) request = ('bounty_redeem', message) return request
def test_rsa(self): handler = handlers['password_transaction'](self.oracle) pwtxid = hashlib.sha256('test').hexdigest() rsa_public_key = json.loads(handler.get_public_key(pwtxid)) key = RSA.construct((long(rsa_public_key['n']), long(rsa_public_key['e']))) msg = 'test message' msg_encrypted = key.encrypt(msg, 0) rsa_key = RSAKeyPairs(self.oracle.db).get_by_pwtxid(pwtxid) key2 = Util.construct_key_from_data(rsa_key) msg_decrypted = key2.decrypt(msg_encrypted) self.assertEqual(msg, msg_decrypted)
def test_rsa(self): handler = handlers['password_transaction'](self.oracle) pwtxid = hashlib.sha256('test').hexdigest() rsa_public_key = json.loads(handler.get_public_key(pwtxid)) key = RSA.construct( (long(rsa_public_key['n']), long(rsa_public_key['e']))) msg = 'test message' msg_encrypted = key.encrypt(msg, 0) rsa_key = RSAKeyPairs(self.oracle.db).get_by_pwtxid(pwtxid) key2 = Util.construct_key_from_data(rsa_key) msg_decrypted = key2.decrypt(msg_encrypted) self.assertEqual(msg, msg_decrypted)