gzip compression added

This commit is contained in:
ed 2019-12-19 01:00:05 +01:00
parent d84deb6a20
commit 96deb0599b
1 changed files with 19 additions and 2 deletions

21
main.go
View File

@ -2,6 +2,7 @@ package main
import (
"bytes"
"compress/gzip"
"crypto/aes"
"crypto/cipher"
"crypto/md5"
@ -124,6 +125,22 @@ func hdnfMatcher(buf []byte) bool {
return len(buf) > 1 && buf[0] == 0x48 && buf[1] == 0x44 && buf[2] == 0x4e && buf[3] == 0x46
}
func comp(data []byte) []byte {
var buf bytes.Buffer
zw := gzip.NewWriter(&buf)
zw.Write(data)
zw.Close()
return buf.Bytes()
}
func decomp(zipped []byte) []byte {
var buf bytes.Buffer
buf.Write(zipped)
zr, _ := gzip.NewReader(&buf)
decomp, _ := ioutil.ReadAll(zr)
return decomp
}
func main() {
FileName = readFn()
filetype.AddMatcher(hdnfType, hdnfMatcher)
@ -137,12 +154,12 @@ func main() {
key := keyMkr(pw)
secret := headerRemove(buf)
datafn := strings.TrimRight(fn,".hdn")
data := decrypt(secret, key)
data := decrypt(decomp(secret), key)
data2file(datafn, data)
} else {
pw := checkPass()
key := keyMkr(pw)
secret := headerAdd(encrypt(buf,key))
secret := headerAdd(encrypt(comp(buf),key))
secretfn := fn + ".hdn"
clearfn := fn + ".origin"
err := os.Rename(fn,clearfn)