def encrypt_file(gpg: gnupg.GPG, targer_folder: str): configuration_kwargs = utils.get_configuratation( path=os.path.join( targer_folder, 'configuration' ) ) value = _get_decryption(configuration_kwargs=configuration_kwargs) gpg.import_keys(value) keys = gpg.list_keys() gpg.trust_keys( keys.fingerprints, 'TRUST_ULTIMATE' ) decrypted_filepaths = utils.get_files( path=os.path.join( targer_folder, 'decrypted_files' ) ) encrypted_path = os.path.join( targer_folder, 'encrypted_files' ) for decryped_file in decrypted_filepaths: base_name = __set_file_name(path=decryped_file) logger.info(f'encrypting file {base_name}') output_file = os.path.join( encrypted_path, base_name ) with open(decryped_file, 'rb') as connection: status = gpg.encrypt_file( file=connection, recipients=keys.fingerprints, output=output_file, ) logger.info(f'encrypting done') if not status.ok: logger.info(f'{status.stderr}') else: logger.info(f'Status [{status.status}]')
def key_edit(key, password, path_to_user_folder): try: gpg = GPG() gpg.delete_keys(key, True, passphrase=password) gpg.delete_keys(key) key_data = open(path_to_user_folder+'/main/gpg_private_key.asc').read() new_key = gpg.import_keys(key_data) new_key = new_key.results[0]['fingerprint'] gpg.trust_keys(new_key, "TRUST_ULTIMATE") system('echo RELOADAGENT | gpg-connect-agent') copy2(path_to_user_folder+'/main/gpg_private_key.asc', path_to_user_folder+'/user_data/gpg_private_key.asc') return new_key except: msg = bot.send_message(message.chat.id, 'Произошла ошибка.', reply_markup = types.ReplyKeyboardRemove(selective=False)) del_mess(msg, bot, 6) return key
def _get_decryption(gpg: gnupg.GPG, configuration_kwargs: Dict) -> gnupg.GPG: ssm_name = '{environment}.{name}-{company_name}'.format( environment=settings.ENVIRONMENT, name=configuration_kwargs.get('secret_name'), company_name=configuration_kwargs.get('company_name')) secret_key = [] for key in ['public', 'private']: logger.info(f'Handling {key} for decryption') ssm_name_extended = f'{ssm_name}-{key}' value = parameter_store.get_keys(profile_name='ssm', name=ssm_name_extended) secret_key.append(value) secret_keys = ''.join(secret_key) gpg.import_keys(secret_keys) keys = gpg.list_keys(True) gpg.trust_keys(keys.fingerprints, 'TRUST_ULTIMATE') return gpg