Exemple #1
0
 def to_dict(self,
             encrypt_password: str = None,
             include_channel_keys: bool = True):
     private_key_string, seed = self.private_key_string, self.seed
     if not self.encrypted and self.private_key:
         private_key_string = self.private_key.extended_key_string()
     if not self.encrypted and encrypt_password:
         if private_key_string:
             private_key_string = aes_encrypt(
                 encrypt_password, private_key_string,
                 self.get_init_vector('private_key'))
         if seed:
             seed = aes_encrypt(encrypt_password, self.seed,
                                self.get_init_vector('seed'))
     d = {
         'ledger':
         self.ledger.get_id(),
         'name':
         self.name,
         'seed':
         seed,
         'encrypted':
         bool(self.encrypted or encrypt_password),
         'private_key':
         private_key_string,
         'public_key':
         self.public_key.extended_key_string(),
         'address_generator':
         self.address_generator.to_dict(self.receiving, self.change),
         'modified_on':
         self.modified_on
     }
     if include_channel_keys:
         d['certificates'] = self.channel_keys
     return d
Exemple #2
0
 def encrypt(self, password: str) -> bool:
     assert not self.encrypted, "Key is already encrypted."
     if self.seed:
         self.seed = aes_encrypt(password, self.seed, self.get_init_vector('seed'))
     if isinstance(self.private_key, PrivateKey):
         self.private_key_string = aes_encrypt(
             password, self.private_key.extended_key_string(), self.get_init_vector('private_key')
         )
         self.private_key = None
     self.encrypted = True
     return True
Exemple #3
0
 def test_encrypt_iv_d(self, _):
     self.assertEqual(
         aes_encrypt(self.password, self.message),
         'ZmZmZmZmZmZmZmZmZmZmZjlrKptoKD+MFwDxcg3XtCD9qz8UWhEhq/TVJT5+Mtp2a8sE'
         'CaO6WQj7fYsWGu2Hvbc0qYqxdN0HeTsiO+cZRo3eJISgr3F+rXFYi5oSBlD2')
     self.assertTupleEqual(aes_decrypt(self.password, self.expected),
                           (self.message, b'f' * 16))
Exemple #4
0
 def test_decrypt_error(self):
     with self.assertRaises(InvalidPasswordError):
         aes_decrypt('notbubblegum', aes_encrypt('bubblegum', self.message))
Exemple #5
0
 def test_encrypt_decrypt(self):
     self.assertEqual(
         aes_decrypt('bubblegum', aes_encrypt('bubblegum', self.message))[0],
         self.message
     )
Exemple #6
0
 def test_encrypt_iv_f(self, _):
     self.assertEqual(
         aes_encrypt(self.password, self.message),
        'ZGRkZGRkZGRkZGRkZGRkZKBP/4pR+47hLHbHyvDJm9aRKDuoBdTG8SrFvHqfagK6Co1VrHUOd'
        'oF+6PGSxru3+VR63ybkXLNM75s/qVw+dnKVAkI8OfoVnJvGRSc49e38'
     )