diff options
Diffstat (limited to 'vendor/golang.org/x/crypto/bcrypt/base64.go')
-rw-r--r-- | vendor/golang.org/x/crypto/bcrypt/base64.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/vendor/golang.org/x/crypto/bcrypt/base64.go b/vendor/golang.org/x/crypto/bcrypt/base64.go new file mode 100644 index 0000000..fc31160 --- /dev/null +++ b/vendor/golang.org/x/crypto/bcrypt/base64.go | |||
@@ -0,0 +1,35 @@ | |||
1 | // Copyright 2011 The Go Authors. All rights reserved. | ||
2 | // Use of this source code is governed by a BSD-style | ||
3 | // license that can be found in the LICENSE file. | ||
4 | |||
5 | package bcrypt | ||
6 | |||
7 | import "encoding/base64" | ||
8 | |||
9 | const alphabet = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" | ||
10 | |||
11 | var bcEncoding = base64.NewEncoding(alphabet) | ||
12 | |||
13 | func base64Encode(src []byte) []byte { | ||
14 | n := bcEncoding.EncodedLen(len(src)) | ||
15 | dst := make([]byte, n) | ||
16 | bcEncoding.Encode(dst, src) | ||
17 | for dst[n-1] == '=' { | ||
18 | n-- | ||
19 | } | ||
20 | return dst[:n] | ||
21 | } | ||
22 | |||
23 | func base64Decode(src []byte) ([]byte, error) { | ||
24 | numOfEquals := 4 - (len(src) % 4) | ||
25 | for i := 0; i < numOfEquals; i++ { | ||
26 | src = append(src, '=') | ||
27 | } | ||
28 | |||
29 | dst := make([]byte, bcEncoding.DecodedLen(len(src))) | ||
30 | n, err := bcEncoding.Decode(dst, src) | ||
31 | if err != nil { | ||
32 | return nil, err | ||
33 | } | ||
34 | return dst[:n], nil | ||
35 | } | ||