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