예제 #1
0
    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
예제 #2
0
파일: tests.py 프로젝트: Gricha/orisi
  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
예제 #3
0
파일: tests.py 프로젝트: Gricha/orisi
  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)
예제 #4
0
    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)