package identity import ( "strings" "testing" ) // novox/hq ADR 0105: the found tunnel's private key becomes the node's overlay key, stored as a // generated one is, and the public half the mesh records is derived from it — so the peers that // know the tunnel by that key keep reaching it. func TestAnOverlayKeyTakenFromAFoundTunnelIsTheSameKey(t *testing.T) { generated, err := GenerateOverlayKey() if err != nil { t.Fatal(err) } taken, err := OverlayKeyFrom(generated.Private) if err != nil { t.Fatal(err) } if taken.Public != generated.Public || taken.Private != generated.Private { t.Fatalf("a key taken from a private half is not that key: %+v vs %+v", taken, generated) } for _, bad := range []string{"", "not base64!", "c2hvcnQ="} { if _, err := OverlayKeyFrom(bad); err == nil || !strings.Contains(err.Error(), "found tunnel") { t.Errorf("%q was taken as a key: %v", bad, err) } } }