gzip compression added
This commit is contained in:
parent
d84deb6a20
commit
96deb0599b
21
main.go
21
main.go
|
@ -2,6 +2,7 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"compress/gzip"
|
||||||
"crypto/aes"
|
"crypto/aes"
|
||||||
"crypto/cipher"
|
"crypto/cipher"
|
||||||
"crypto/md5"
|
"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
|
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() {
|
func main() {
|
||||||
FileName = readFn()
|
FileName = readFn()
|
||||||
filetype.AddMatcher(hdnfType, hdnfMatcher)
|
filetype.AddMatcher(hdnfType, hdnfMatcher)
|
||||||
|
@ -137,12 +154,12 @@ func main() {
|
||||||
key := keyMkr(pw)
|
key := keyMkr(pw)
|
||||||
secret := headerRemove(buf)
|
secret := headerRemove(buf)
|
||||||
datafn := strings.TrimRight(fn,".hdn")
|
datafn := strings.TrimRight(fn,".hdn")
|
||||||
data := decrypt(secret, key)
|
data := decrypt(decomp(secret), key)
|
||||||
data2file(datafn, data)
|
data2file(datafn, data)
|
||||||
} else {
|
} else {
|
||||||
pw := checkPass()
|
pw := checkPass()
|
||||||
key := keyMkr(pw)
|
key := keyMkr(pw)
|
||||||
secret := headerAdd(encrypt(buf,key))
|
secret := headerAdd(encrypt(comp(buf),key))
|
||||||
secretfn := fn + ".hdn"
|
secretfn := fn + ".hdn"
|
||||||
clearfn := fn + ".origin"
|
clearfn := fn + ".origin"
|
||||||
err := os.Rename(fn,clearfn)
|
err := os.Rename(fn,clearfn)
|
||||||
|
|
Loading…
Reference in New Issue