summaryrefslogtreecommitdiff
path: root/vendor/github.com/dvsekhvalnov/jose2go/deflate.go
blob: c788f5bdcc48d48f8da9b96ba7060824d368e5bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package jose

import (
	"bytes"
	"compress/flate"
	"io/ioutil"
)

func init() {
	RegisterJwc(new(Deflate))
}

// Deflate compression algorithm implementation
type Deflate struct {}

func (alg *Deflate) Name() string {
	return DEF
}

func (alg *Deflate) Compress(plainText []byte) []byte {
	var buf bytes.Buffer
	deflate,_ := flate.NewWriter(&buf, 8) //level=DEFLATED
	
	deflate.Write(plainText)
	deflate.Close()
	
	return buf.Bytes()
}

func (alg *Deflate) Decompress(compressedText []byte) []byte {	
	
	enflated,_ := ioutil.ReadAll(
					flate.NewReader(
						bytes.NewReader(compressedText)))
	
	return enflated
}