aboutsummaryrefslogtreecommitdiff
path: root/base64.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-10-23 16:56:08 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-10-23 16:56:08 +0200
commit2e95c9cc2b28517d024a7556bae32dbd34f1c510 (patch)
tree5601179381bc19252f8d35416b8fdb2e986dcb4a /base64.go
parent17ff78ec85558342223cc9d03099bd87cbf28537 (diff)
Encapsulate Base64 encoder/decoder
Diffstat (limited to 'base64.go')
-rw-r--r--base64.go21
1 files changed, 21 insertions, 0 deletions
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
+}