1package sshvault
2
3import "os"
4
5//Shred securely delete a file
6func Shred(file string) error {
7	defer os.Remove(file)
8
9	f, err := os.OpenFile(file, os.O_RDWR, 0600)
10	if err != nil {
11		return err
12	}
13
14	fileInfo, err := f.Stat()
15	if err != nil {
16		return err
17	}
18
19	zeroBytes := make([]byte, fileInfo.Size())
20
21	// fill out the new slice with 0 value
22	copy(zeroBytes[:], "0")
23
24	// wipe the content of the target file
25	_, err = f.Write([]byte(zeroBytes))
26	if err != nil {
27		return err
28	}
29
30	return f.Close()
31}
32