From 8097f16e6c20d5b663ae1893b7970b3c91a3f80d Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 14 Apr 2017 01:46:18 +0200 Subject: ... --- base64.go | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'base64.go') diff --git a/base64.go b/base64.go index 56a7324..c2ba2eb 100644 --- a/base64.go +++ b/base64.go @@ -6,16 +6,23 @@ import ( "encoding/binary" ) -func DecodeBase64(v interface{}, b []byte) error { - buf := bytes.NewBuffer(b) +func DecodeB64(v interface{}, b []byte) error { + buf := bytes.NewReader(b) dec := base64.NewDecoder(base64.StdEncoding, buf) - return binary.Read(dec, binary.BigEndian, v) + if err := binary.Read(dec, binary.BigEndian, v); err != nil { + return err + } + return nil } -func EncodeBase64(v interface{}) ([]byte, error) { - buf := &bytes.Buffer{} +func EncodeB64(v interface{}) ([]byte, error) { + buf := new(bytes.Buffer) enc := base64.NewEncoder(base64.StdEncoding, buf) - err := binary.Write(enc, binary.BigEndian, v) - enc.Close() - return buf.Bytes(), err + if err := binary.Write(enc, binary.BigEndian, v); err != nil { + return nil, err + } + if err := enc.Close(); err != nil { + return nil, err + } + return buf.Bytes(), nil } -- cgit v1.2.3