def test_read_secure(self): with set_qrl_dir("wallet_secure_ver1"): wallet = Wallet() self.assertEqual(1, len(wallet.address_items)) self.assertEqual(wallet.version, 1) self.assertTrue(wallet.encrypted) addr_item = wallet.address_items[0] self.assertEqual('Q010400d9f1efe5b272e042dcc8ef690f0e90ca8b0b6edba0d26f81e7aff12a6754b21788169f7f', addr_item.qaddress) wallet.decrypt_item(0, 'test1234') xmss0 = wallet.get_xmss_by_index(0) self.assertEqual('010400d9f1efe5b272e042dcc8ef690f0e90ca8b0b6edba0d26f81e7aff12a6754b21788169f7f', bin2hstr(xmss0.address)) xmss0b = wallet.get_xmss_by_address(xmss0.address) self.assertEqual('010400d9f1efe5b272e042dcc8ef690f0e90ca8b0b6edba0d26f81e7aff12a6754b21788169f7f', bin2hstr(xmss0b.address))
def test_integrity_behaviour(self): with set_qrl_dir("no_data"): TEST_KEY = 'mytestkey' wallet = Wallet() wallet.add_new_address(4) wallet.add_new_address(4) wallet.encrypt(TEST_KEY) # An encrypted wallet is not editable. with self.assertRaises(WalletEncryptionError): wallet.add_new_address(4) # You may not re-encrypt it. with self.assertRaises(WalletEncryptionError): wallet.encrypt(TEST_KEY) # You can save it. wallet.save() wallet.decrypt_item(1, TEST_KEY) # A partially encrypted wallet is not editable. with self.assertRaises(WalletEncryptionError): wallet.add_new_address(4) # You may not re-encrypt it. with self.assertRaises(WalletEncryptionError): wallet.encrypt(TEST_KEY) # You may not re-decrypt it. with self.assertRaises(WalletEncryptionError): wallet.decrypt(TEST_KEY) # You can't even save it. with self.assertRaises(WalletEncryptionError): wallet.save() wallet.decrypt_item(0, TEST_KEY) # A fully decrypted wallet is editable. wallet.add_new_address(4) # You may not re-decrypt it. with self.assertRaises(WalletEncryptionError): wallet.decrypt(TEST_KEY) # You can save it. wallet.save()