31 lines
1.1 KiB
Go
31 lines
1.1 KiB
Go
package meshnodeenrollerclient
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestATokenLifeAndTheRedeemProofAreAsTheHolderMakesThem(t *testing.T) {
|
|
for life, ok := range map[string]bool{"": true, "1h": true, "24h": true, "25h": false, "0s": false, "-1h": false, "soon": false} {
|
|
if _, err := TokenLife(life); (err == nil) != ok {
|
|
t.Errorf("TokenLife(%q) = %v, want ok %v", life, err, ok)
|
|
}
|
|
}
|
|
if d, _ := TokenLife(""); d != DefaultTokenLife {
|
|
t.Errorf("an empty life is %s", d)
|
|
}
|
|
if got := IssuedID("g14", time.Unix(0, 42)); got != "enrolment-issued.g14.42" {
|
|
t.Errorf("IssuedID = %s", got)
|
|
}
|
|
if User("g14") != "enrol.g14" {
|
|
t.Error("the joining machine dials as enrol.<node>")
|
|
}
|
|
r := Redeem{Node: "g14", PublicKey: "p", OverlayKey: "o", SealingKey: "s", ServingKey: "v"}
|
|
if string(RedeemProof("g14", "p", "o", "s", "v")) != "novox-mesh-redeem v1\x00g14\x00p\x00o\x00s\x00v" || r.KeysDigest() != KeysDigest("p", "o", "s", "v") {
|
|
t.Error("the proof bytes or the keys' digest changed")
|
|
}
|
|
if got := (RedeemAnswer{Node: "g14", Signature: "x"}).SignedBytes(); string(got) == "" || string(got) == "x" {
|
|
t.Errorf("SignedBytes = %s", got)
|
|
}
|
|
}
|