def test_passphrase(self): # Enable passphrase self.do_command(self.dev_args + ['togglepassphrase']) # A passphrase will need to be sent result = self.do_command(self.dev_args + ['enumerate']) for dev in result: if dev['type'] == 'trezor' and dev['path'] == 'udp:127.0.0.1:21324': self.assertTrue(dev['needs_passphrase_sent']) result = self.do_command(self.dev_args + ['-p', 'pass', 'enumerate']) for dev in result: if dev['type'] == 'trezor' and dev['path'] == 'udp:127.0.0.1:21324': self.assertFalse(dev['needs_passphrase_sent']) fpr = dev['fingerprint'] if self.emulator.model == 't': # Trezor T: A different passphrase would not change the fingerprint result = self.do_command(self.dev_args + ['-p', 'pass2', 'enumerate']) for dev in result: if dev['type'] == 'trezor' and dev[ 'path'] == 'udp:127.0.0.1:21324': self.assertFalse(dev['needs_passphrase_sent']) self.assertEqual(dev['fingerprint'], fpr) else: # Trezor 1: A different passphrase will change the fingerprint result = self.do_command(self.dev_args + ['-p', 'pass2', 'enumerate']) for dev in result: if dev['type'] == 'trezor' and dev[ 'path'] == 'udp:127.0.0.1:21324': self.assertFalse(dev['needs_passphrase_sent']) self.assertNotEqual(dev['fingerprint'], fpr) # Clearing the session and starting a new one with a new passphrase should change the passphrase self.client.call(messages.Initialize()) result = self.do_command(self.dev_args + ['-p', 'pass3', 'enumerate']) for dev in result: if dev['type'] == 'trezor' and dev['path'] == 'udp:127.0.0.1:21324': self.assertFalse(dev['needs_passphrase_sent']) self.assertNotEqual(dev['fingerprint'], fpr) # Disable passphrase self.do_command(self.dev_args + ['togglepassphrase']) # There's no passphrase result = self.do_command(self.dev_args + ['enumerate']) for dev in result: if dev['type'] == 'trezor' and dev['path'] == 'udp:127.0.0.1:21324': self.assertFalse(dev['needs_passphrase_sent']) self.assertEquals(dev['fingerprint'], '95d8f670') # Setting a passphrase won't change the fingerprint result = self.do_command(self.dev_args + ['-p', 'pass', 'enumerate']) for dev in result: if dev['type'] == 'trezor' and dev['path'] == 'udp:127.0.0.1:21324': self.assertFalse(dev['needs_passphrase_sent']) self.assertEquals(dev['fingerprint'], '95d8f670')
def test_passphrase(self): # There's no passphrase result = self.do_command(self.dev_args + ['enumerate']) for dev in result: if dev['type'] == 'trezor' and dev['path'] == 'udp:127.0.0.1:21324': self.assertFalse(dev['needs_passphrase_sent']) self.assertEquals(dev['fingerprint'], '95d8f670') # Setting a passphrase won't change the fingerprint result = self.do_command(self.dev_args + ['-p', 'pass', 'enumerate']) for dev in result: if dev['type'] == 'trezor' and dev['path'] == 'udp:127.0.0.1:21324': self.assertFalse(dev['needs_passphrase_sent']) self.assertEquals(dev['fingerprint'], '95d8f670') # Set a passphrase device.wipe(self.client) load_device_by_mnemonic(client=self.client, mnemonic='alcohol woman abuse must during monitor noble actual mixed trade anger aisle', pin='', passphrase_protection=True, label='test') self.client.call(messages.ClearSession()) # A passphrase will need to be sent result = self.do_command(self.dev_args + ['enumerate']) for dev in result: if dev['type'] == 'trezor' and dev['path'] == 'udp:127.0.0.1:21324': self.assertTrue(dev['needs_passphrase_sent']) result = self.do_command(self.dev_args + ['-p', 'pass', 'enumerate']) for dev in result: if dev['type'] == 'trezor' and dev['path'] == 'udp:127.0.0.1:21324': self.assertFalse(dev['needs_passphrase_sent']) fpr = dev['fingerprint'] if self.emulator.model_t: # Trezor T: A different passphrase would not change the fingerprint result = self.do_command(self.dev_args + ['-p', 'pass2', 'enumerate']) for dev in result: if dev['type'] == 'trezor' and dev['path'] == 'udp:127.0.0.1:21324': self.assertFalse(dev['needs_passphrase_sent']) self.assertEqual(dev['fingerprint'], fpr) else: # Trezor 1: A different passphrase will change the fingerprint result = self.do_command(self.dev_args + ['-p', 'pass2', 'enumerate']) for dev in result: if dev['type'] == 'trezor' and dev['path'] == 'udp:127.0.0.1:21324': self.assertFalse(dev['needs_passphrase_sent']) self.assertNotEqual(dev['fingerprint'], fpr) # Clearing the session and starting a new one with a new passphrase should change the passphrase self.client.call(messages.Initialize()) result = self.do_command(self.dev_args + ['-p', 'pass3', 'enumerate']) for dev in result: if dev['type'] == 'trezor' and dev['path'] == 'udp:127.0.0.1:21324': self.assertFalse(dev['needs_passphrase_sent']) self.assertNotEqual(dev['fingerprint'], fpr)