mirror of
https://github.com/safing/portmaster
synced 2025-09-02 10:39:22 +00:00
48 lines
893 B
Go
48 lines
893 B
Go
package token
|
|
|
|
import (
|
|
"crypto/rand"
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/mr-tron/base58"
|
|
|
|
"github.com/safing/jess/lhash"
|
|
)
|
|
|
|
type genAlgs struct {
|
|
alg lhash.Algorithm
|
|
name string
|
|
}
|
|
|
|
func TestGenerateScrambleKeys(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
for _, alg := range []genAlgs{
|
|
{alg: lhash.SHA2_256, name: "SHA2_256"},
|
|
{alg: lhash.SHA3_256, name: "SHA3_256"},
|
|
{alg: lhash.SHA3_512, name: "SHA3_512"},
|
|
{alg: lhash.BLAKE2b_256, name: "BLAKE2b_256"},
|
|
} {
|
|
token := make([]byte, scrambleSecretSize)
|
|
n, err := rand.Read(token)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if n != scrambleSecretSize {
|
|
t.Fatalf("only got %d bytes", n)
|
|
}
|
|
scrambledToken := lhash.Digest(alg.alg, token).Bytes()
|
|
|
|
fmt.Printf(
|
|
"%s secret token: %s\n",
|
|
alg.name,
|
|
base58.Encode(token),
|
|
)
|
|
fmt.Printf(
|
|
"%s scrambled (public) token: %s\n",
|
|
alg.name,
|
|
base58.Encode(scrambledToken),
|
|
)
|
|
}
|
|
}
|