OSDN Git Service

Hulk did something
[bytom/vapor.git] / vendor / golang.org / x / crypto / bcrypt / base64.go
diff --git a/vendor/golang.org/x/crypto/bcrypt/base64.go b/vendor/golang.org/x/crypto/bcrypt/base64.go
new file mode 100644 (file)
index 0000000..fc31160
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package bcrypt
+
+import "encoding/base64"
+
+const alphabet = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
+
+var bcEncoding = base64.NewEncoding(alphabet)
+
+func base64Encode(src []byte) []byte {
+       n := bcEncoding.EncodedLen(len(src))
+       dst := make([]byte, n)
+       bcEncoding.Encode(dst, src)
+       for dst[n-1] == '=' {
+               n--
+       }
+       return dst[:n]
+}
+
+func base64Decode(src []byte) ([]byte, error) {
+       numOfEquals := 4 - (len(src) % 4)
+       for i := 0; i < numOfEquals; i++ {
+               src = append(src, '=')
+       }
+
+       dst := make([]byte, bcEncoding.DecodedLen(len(src)))
+       n, err := bcEncoding.Decode(dst, src)
+       if err != nil {
+               return nil, err
+       }
+       return dst[:n], nil
+}