From 96deb0599b1056d0d5cbe972391597bab0402d10 Mon Sep 17 00:00:00 2001 From: ed Date: Thu, 19 Dec 2019 01:00:05 +0100 Subject: [PATCH] gzip compression added --- main.go | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 320d031..f0487f6 100644 --- a/main.go +++ b/main.go @@ -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)