HDNF header added

This commit is contained in:
ed 2019-12-18 22:08:50 +01:00
parent 0f63ceedbe
commit f8e4bbfe64
1 changed files with 20 additions and 8 deletions

28
main.go
View File

@ -1,6 +1,7 @@
package main package main
import ( import (
"bytes"
"crypto/aes" "crypto/aes"
"crypto/cipher" "crypto/cipher"
"crypto/md5" "crypto/md5"
@ -12,12 +13,13 @@ import (
"regexp" "regexp"
"strings" "strings"
"syscall" "syscall"
"github.com/h2non/filetype" // "github.com/h2non/filetype"
"golang.org/x/crypto/ssh/terminal" "golang.org/x/crypto/ssh/terminal"
) )
var debug bool = false var debug bool = true
var FileName string var FileName string
var HDNFhead []byte = []byte("HDNF")
func checkErr(err error) { func checkErr(err error) {
if err != nil { if err != nil {
@ -127,21 +129,30 @@ func checkPass() string {
return pw return pw
} }
func headerAdd(data []byte) []byte {
return bytes.Join([][]byte{HDNFhead,data},nil)
}
func headerRemove(data []byte) []byte {
return bytes.TrimPrefix(data,HDNFhead)
}
func main() { func main() {
FileName = readFn() FileName = readFn()
fn := FileName fn := FileName
fmt.Println(fn) fmt.Println(fn)
data := file2data(fn) //data := file2data(fn)
fType, _ := filetype.Get(data) //fType, _ := filetype.Get(data)
fmt.Println(fType.Extension) //fmt.Println(fType.Extension)
os.Exit(0) //os.Exit(0)
mode := getMode() mode := getMode()
switch mode { switch mode {
case "h": case "h":
pw := checkPass() pw := checkPass()
key := keyMkr(pw) key := keyMkr(pw)
data := file2data(fn) data := file2data(fn)
secret := encrypt(data,key) secret := headerAdd(encrypt(data,key))
//secret = headerAdd(secret)
secretfn := fn + ".hdn" secretfn := fn + ".hdn"
clearfn := fn + ".origin" clearfn := fn + ".origin"
err := os.Rename(fn,clearfn) err := os.Rename(fn,clearfn)
@ -153,7 +164,8 @@ func main() {
pw := readPass() pw := readPass()
fmt.Print("\n") fmt.Print("\n")
key := keyMkr(pw) key := keyMkr(pw)
secret := file2data(fn) secret := headerRemove(file2data(fn))
//secret := file2data(fn)
datafn := strings.TrimRight(fn,".hdn") datafn := strings.TrimRight(fn,".hdn")
data := decrypt(secret, key) data := decrypt(secret, key)
data2file(datafn, data) data2file(datafn, data)