added check for required programs. updated sdelete variable to secure_delete

This commit is contained in:
2022-12-30 16:24:13 -05:00
parent b9477e2943
commit 5ec2a77630

View File

@@ -345,18 +345,27 @@ if __name__ == "__main__":
logger = build_logger(logging.INFO)
if os_detected == "Windows":
bitwarden_cli_executable = os.path.join(script_directory, "lib", "Bitwarden CLI", "bw.exe")
gpg_executable = os.path.join(script_directory, "lib", "gpg", "bin", "gpg.exe")
sdelete_executable = os.path.join(script_directory, "lib", "sdelete.exe")
bitwarden_cli_executable = "bw.exe"
gpg_executable = "gpg.exe"
secure_delete_executable = "sdelete.exe"
elif os_detected == "Linux":
bitwarden_cli_executable = "bw"
gpg_executable = "gpg"
secure_delete_executable = "srm"
#elif os_detected == "macOS":
# bitwarden_cli_executable = os.path.join(script_directory, "lib", "Bitwarden CLI", "bw_macOS")
else:
print("Your OS is not supported. Only Windows, Linux, and macOS are supported. Those are the only three supported OSes for the Bitwarden CLI.")
print("Detected OS: {0}".format(os_detected))
sys.exit(1)
# check if required programs are installed
if not shutil.which(bitwarden_cli_executable):
print("Bitwarden CLI ({}) cannot be found. Please make sure it is installed and executable.".format(bitwarden_cli_executable))
elif not shutil.which(gpg_executable):
print("GPG ({}) cannot be found. Please make sure it is installed and executable.".format(gpg_executable))
elif not shutil.which(secure_delete_executable):
print("SRM/sdelete.exe ({}) cannot be found. Please make sure it is installed and executable.".format(secure_delete_executable))
client = client.ProxyKmipClient(config_file=pykmip_client_config_file)
client.open()
@@ -514,14 +523,14 @@ if __name__ == "__main__":
logger.info("Securely deleting files")
if os_detected == "Windows":
# sdelete.exe .\working\ -p 5 -s
logger.debug((subprocess.run([sdelete_executable, '-p', '5', '-s', working_directory], capture_output=True).stdout).decode())
logger.debug((subprocess.run([secure_delete_executable, '-p', '5', '-s', working_directory], capture_output=True).stdout).decode())
if not opts.no_encrypt:
logger.debug((subprocess.run([sdelete_executable, '-p', '5', zip_filename + ".zip"], capture_output=True).stdout).decode())
logger.debug((subprocess.run([secure_delete_executable, '-p', '5', zip_filename + ".zip"], capture_output=True).stdout).decode())
elif os_detected == "Linux":
# find <directory> -depth -type f -exec shred -v -n 1 -z -u {} \;
logger.debug((subprocess.run(['srm', '-r', '-z', '-v', working_directory], capture_output=True).stdout).decode())
logger.debug((subprocess.run([secure_delete_executable, '-r', '-z', '-v', working_directory], capture_output=True).stdout).decode())
if not opts.no_encrypt:
logger.debug((subprocess.run(['srm', '-r', '-z', '-v', zip_filename + '.zip'], capture_output=True).stdout).decode())
logger.debug((subprocess.run([secure_delete_executable, '-r', '-z', '-v', zip_filename + '.zip'], capture_output=True).stdout).decode())
del vault_password
del os.environ['BW_CLIENTID']