mirror of
https://github.com/safing/portmaster
synced 2025-09-02 10:39:22 +00:00
84 lines
1.4 KiB
Go
84 lines
1.4 KiB
Go
package token
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/safing/jess/lhash"
|
|
)
|
|
|
|
const ScrambleTestZone = "test-scramble"
|
|
|
|
func init() {
|
|
// Combined testing config.
|
|
|
|
h, err := NewScrambleHandler(ScrambleOptions{
|
|
Zone: ScrambleTestZone,
|
|
Algorithm: lhash.SHA2_256,
|
|
InitialTokens: []string{"2VqJ8BvDew1tUpytZhR7tuvq7ToPpW3tQtHvu3veE3iW"},
|
|
})
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
err = RegisterScrambleHandler(h)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func TestScramble(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
opts := &ScrambleOptions{
|
|
Zone: ScrambleTestZone,
|
|
Algorithm: lhash.SHA2_256,
|
|
}
|
|
|
|
// Issuer
|
|
opts.InitialTokens = []string{"2VqJ8BvDew1tUpytZhR7tuvq7ToPpW3tQtHvu3veE3iW"}
|
|
issuer, err := NewScrambleHandler(*opts)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// Client
|
|
opts.InitialTokens = nil
|
|
opts.InitialVerifiers = []string{"Cy9tz37Xq9NiXGDRU9yicjGU62GjXskE9KqUmuoddSxaE3"}
|
|
client, err := NewScrambleHandler(*opts)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// Verifier
|
|
verifier, err := NewScrambleHandler(*opts)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// Play through the whole use case.
|
|
|
|
request := client.CreateTokenRequest()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
issuedTokens, err := issuer.IssueTokens(request)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
err = client.ProcessIssuedTokens(issuedTokens)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
token, err := client.GetToken()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
err = verifier.Verify(token)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|