use GNU shred for secure file deletion

This commit is contained in:
The MMGen Project 2021-07-26 18:27:54 +00:00
commit 46f91021e6
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2

View file

@ -223,14 +223,13 @@ if invoked_as == 'passchg' and ss_in.infile.dirname == g.data_dir:
m2 = 'update the default wallet'
confirm_or_raise(m1,m2,exit_msg='Password not changed')
ss_out.write_to_file(desc='New wallet',outdir=g.data_dir)
msg('Securely deleting old wallet')
bmsg('Securely deleting old wallet')
from subprocess import run
wipe_cmd = ['sdelete','-p','20'] if g.platform=='win' else ['wipe','-sf']
try:
run(wipe_cmd + [ss_in.infile.name],check=True)
except:
ymsg(f'WARNING: {wipe_cmd[0]!r} command failed, using regular file delete instead')
os.unlink(ss_in.infile.name)
run(
['shred','--iterations=30','--zero','--remove=wipesync']
+ (['--verbose'] if opt.verbose else [])
+ [ss_in.infile.name],
check=True )
else:
try:
assert invoked_as == 'gen', 'dw'