示例#1
0
 def to_dict(self, encrypt_password: str = None):
     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'))
     return {
         '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
     }
示例#2
0
 def to_dict(self):
     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 self.serialize_encrypted:
         assert None not in [
             self.seed_encryption_init_vector,
             self.private_key_encryption_init_vector
         ]
         private_key_string = aes_encrypt(
             self.password, private_key_string,
             self.private_key_encryption_init_vector)
         seed = aes_encrypt(self.password, self.seed,
                            self.seed_encryption_init_vector)
     return {
         'ledger':
         self.ledger.get_id(),
         'name':
         self.name,
         'seed':
         seed,
         'encrypted':
         self.serialize_encrypted,
         '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
     }
示例#3
0
    def encrypt(self, password: str) -> None:
        assert not self.encrypted, "Key is already encrypted."
        assert isinstance(self.private_key, PrivateKey)

        self.seed = aes_encrypt(password, self.seed, self.seed_encryption_init_vector)
        self.private_key_string = aes_encrypt(
            password, self.private_key.extended_key_string(), self.private_key_encryption_init_vector
        )
        self.private_key = None
        self.password = None
        self.encrypted = True
示例#4
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
示例#5
0
文件: test_hash.py 项目: mirgee/lbry
 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))
示例#6
0
文件: test_hash.py 项目: mirgee/lbry
 def test_encrypt_decrypt(self):
     self.assertEqual(
         aes_decrypt('bubblegum', aes_encrypt('bubblegum',
                                              self.message))[0],
         self.message)
示例#7
0
文件: test_hash.py 项目: mirgee/lbry
 def test_encrypt_iv_f(self, _):
     self.assertEqual(
         aes_encrypt(self.password, self.message),
         'ZGRkZGRkZGRkZGRkZGRkZKBP/4pR+47hLHbHyvDJm9aRKDuoBdTG8SrFvHqfagK6Co1VrHUOd'
         'oF+6PGSxru3+VR63ybkXLNM75s/qVw+dnKVAkI8OfoVnJvGRSc49e38')
示例#8
0
 def test_decrypt_error(self):
     with self.assertRaises(InvalidPasswordError):
         aes_decrypt('notbubblegum', aes_encrypt('bubblegum', self.message))