package crypto import ( "crypto/sha512" "encoding/hex" "edge-infra.dev/pkg/lib/crypto/randomizer" ) var ( EdgeBootstrapTokenLength = 32 ) func GenerateRandomEdgeBootstrapToken() (Credential, error) { token, err := randomizer.GenerateRandomBytes(EdgeBootstrapTokenLength) if err != nil { return sha512Credential{}, err } encodedTokenHex := hex.EncodeToString(token) hashedPwd := HashEdgeBootstrapToken([]byte(encodedTokenHex)) return sha512Credential{plainTextPwd: encodedTokenHex, hashedPwd: hashedPwd, salt: []byte("")}, nil } func HashEdgeBootstrapToken(token []byte) []byte { sha512Hasher := sha512.New() sha512Hasher.Write(token) return sha512Hasher.Sum(nil) }