X-Git-Url: http://www.git.cypherpunks.ru/?p=gohpenc.git;a=blobdiff_plain;f=src%2Fcypherpunks.ru%2Fgohpenc%2Fbase32.go;fp=src%2Fcypherpunks.ru%2Fgohpenc%2Fbase32.go;h=f84388f68e33133a246534f2883cd217d24fc29f;hp=0000000000000000000000000000000000000000;hb=db781dbdb4806867e8e2e378ceb20cf886e8fa4c;hpb=ae7a2efeea1aadfaf3a098e0449997f5b5840b44 diff --git a/src/cypherpunks.ru/gohpenc/base32.go b/src/cypherpunks.ru/gohpenc/base32.go new file mode 100644 index 0000000..f84388f --- /dev/null +++ b/src/cypherpunks.ru/gohpenc/base32.go @@ -0,0 +1,23 @@ +package main + +import ( + "encoding/base32" + "strings" +) + +func ToBase32(data []byte) string { + return strings.TrimRight(base32.StdEncoding.EncodeToString(data), "=") +} + +func FromBase32(data string) ([]byte, error) { + padSize := len(data) % 8 + if padSize != 0 { + padSize = 8 - padSize + pad := make([]byte, 0, padSize) + for i := 0; i < padSize; i++ { + pad = append(pad, '=') + } + data += string(pad) + } + return base32.StdEncoding.DecodeString(data) +}