finish OTP code

This commit is contained in:
Xavier Henner
2019-07-10 18:40:15 +02:00
parent 68de442333
commit 88f5ac3765
4 changed files with 36 additions and 4 deletions

View File

@@ -5,21 +5,36 @@ import (
"crypto/sha1"
"crypto/sha256"
"encoding/base32"
"encoding/base64"
"encoding/binary"
"errors"
"fmt"
"hash"
"math"
"math/rand"
"strings"
"time"
)
func NewSalt() string {
var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
b := make([]rune, 4)
for i := range b {
b[i] = letterRunes[rand.Intn(len(letterRunes))]
}
return string(b)
}
func ComputeHmac256(message string, secret string) []byte {
h := hmac.New(sha256.New, []byte(secret))
h.Write([]byte(message))
return h.Sum(nil)
}
func encode64(secret []byte) string {
return strings.TrimRight(base64.StdEncoding.EncodeToString(secret), "=")
}
func encodeSecret(secret []byte) string {
return strings.TrimRight(base32.StdEncoding.EncodeToString(secret), "=")
}