From 2df03306f20766774691af6b0114c7d8763fa269 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Sat, 21 Jun 2025 11:14:08 +0000 Subject: [PATCH] shred_file(): add `cfg`, `iterations` params --- mmgen/autosign.py | 6 +++--- mmgen/fileutil.py | 6 +++--- mmgen/main_wallet.py | 2 +- mmgen/xmrwallet/ops/create.py | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mmgen/autosign.py b/mmgen/autosign.py index 57be8ffc..2305dcfd 100755 --- a/mmgen/autosign.py +++ b/mmgen/autosign.py @@ -242,7 +242,7 @@ class Signable: do_exit = True) for fn in files: msg(f'Shredding file ‘{fn}’') - shred_file(fn) + shred_file(self.cfg, fn, iterations=15) sys.exit(0) async def get_last_created(self): @@ -694,7 +694,7 @@ class Autosign: def wipe_encryption_key(self): if self.keyfile.exists(): ymsg(f'Shredding wallet encryption key ‘{self.keyfile}’') - shred_file(self.keyfile, verbose=self.cfg.verbose) + shred_file(self.cfg, self.keyfile) else: gmsg('No wallet encryption key on removable device') @@ -820,7 +820,7 @@ class Autosign: def do_shred(fn): nonlocal count msg_r('.') - shred_file(fn, verbose=self.cfg.verbose) + shred_file(self.cfg, fn, iterations=15) count += 1 def clean_dir(s_name): diff --git a/mmgen/fileutil.py b/mmgen/fileutil.py index 3a6ad4ef..f8cd9b30 100755 --- a/mmgen/fileutil.py +++ b/mmgen/fileutil.py @@ -57,12 +57,12 @@ def check_binary(args): die(2, f'{args[0]!r} binary missing, not in path, or not executable') set_vt100() -def shred_file(fn, *, verbose=False): +def shred_file(cfg, fn, *, iterations=30): check_binary(['shred', '--version']) from subprocess import run run( - ['shred', '--force', '--iterations=30', '--zero', '--remove=wipesync'] - + (['--verbose'] if verbose else []) + ['shred', '--force', f'--iterations={iterations}', '--zero', '--remove=wipesync'] + + (['--verbose'] if cfg.verbose else []) + [str(fn)], check=True) set_vt100() diff --git a/mmgen/main_wallet.py b/mmgen/main_wallet.py index 5a4e41a4..5bbfed94 100755 --- a/mmgen/main_wallet.py +++ b/mmgen/main_wallet.py @@ -241,7 +241,7 @@ if invoked_as == 'passchg': def secure_delete(fn): bmsg('Securely deleting old wallet') from .fileutil import shred_file - shred_file(fn, verbose = cfg.verbose) + shred_file(cfg, fn) def rename_old_wallet_maybe(silent): # though very unlikely, old and new wallets could have same Key ID and thus same filename. diff --git a/mmgen/xmrwallet/ops/create.py b/mmgen/xmrwallet/ops/create.py index 7116df29..6956e150 100755 --- a/mmgen/xmrwallet/ops/create.py +++ b/mmgen/xmrwallet/ops/create.py @@ -79,6 +79,6 @@ class OpCreateOffline(OpCreate): if f.name.endswith(vkf.ext): from ...fileutil import shred_file msg(f'\nShredding old viewkey-address file ‘{f}’') - shred_file(f, verbose=self.cfg.verbose) + shred_file(self.cfg, f, iterations=15) vkf.write(outdir=self.asi.xmr_dir)