From 2e95c9cc2b28517d024a7556bae32dbd34f1c510 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 23 Oct 2016 16:56:08 +0200 Subject: Encapsulate Base64 encoder/decoder --- base64.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 base64.go (limited to 'base64.go') diff --git a/base64.go b/base64.go new file mode 100644 index 0000000..56a7324 --- /dev/null +++ b/base64.go @@ -0,0 +1,21 @@ +package main + +import ( + "bytes" + "encoding/base64" + "encoding/binary" +) + +func DecodeBase64(v interface{}, b []byte) error { + buf := bytes.NewBuffer(b) + dec := base64.NewDecoder(base64.StdEncoding, buf) + return binary.Read(dec, binary.BigEndian, v) +} + +func EncodeBase64(v interface{}) ([]byte, error) { + buf := &bytes.Buffer{} + enc := base64.NewEncoder(base64.StdEncoding, buf) + err := binary.Write(enc, binary.BigEndian, v) + enc.Close() + return buf.Bytes(), err +} -- cgit v1.2.3