def decrypt(in_file, out_file, private_key, key_length=32): bs = AES.block_size salt = in_file.read(bs)[len('Salted__'):] pass_key_length = int(in_file.read(11)[len('Length__'):]) print pass_key_length encrypted_password = in_file.read(5+pass_key_length)[len('Key__'):] print encrypted_password password = bitcoin_asymmetric_encrypt.decrypt(private_key,encrypted_password) print password key, iv = derive_key_and_iv(password, salt, key_length, bs) cipher = AES.new(key, AES.MODE_CBC, iv) next_chunk = '' finished = False while not finished: chunk, next_chunk = next_chunk, cipher.decrypt(in_file.read(1024 * bs)) if len(next_chunk) == 0: padding_length = ord(chunk[-1]) chunk = chunk[:-padding_length] finished = True out_file.write(chunk)
def get_message_from_secure_payload(self, payload): encrypted = payload['message'] decrypted = bitcoin_asymmetric_encrypt.decrypt( self.wallet.get_private_key_wif(), encrypted) return decrypted
def get_message_from_secure_payload(self, payload): encrypted = payload['message'] decrypted = bitcoin_asymmetric_encrypt.decrypt(self.wallet.get_private_key_wif(), encrypted) return decrypted