mirror of
https://github.com/safing/portmaster
synced 2025-09-01 18:19:12 +00:00
70 lines
1.1 KiB
Go
70 lines
1.1 KiB
Go
package hub
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/safing/jess"
|
|
"github.com/safing/portbase/formats/dsd"
|
|
)
|
|
|
|
func TestHubUpdate(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
// message signing
|
|
|
|
testData := []byte{0}
|
|
|
|
s1, err := jess.GenerateSignet("Ed25519", 0)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
err = s1.StoreKey()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
fmt.Printf("s1: %+v\n", s1)
|
|
|
|
s1e, err := s1.AsRecipient()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
err = s1e.StoreKey()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
s1e.ID = createHubID(s1e.Scheme, s1e.Key)
|
|
s1.ID = s1e.ID
|
|
|
|
t.Logf("generated hub ID: %s", s1.ID)
|
|
|
|
env := jess.NewUnconfiguredEnvelope()
|
|
env.SuiteID = jess.SuiteSignV1
|
|
env.Senders = []*jess.Signet{s1}
|
|
|
|
s, err := env.Correspondence(nil)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
letter, err := s.Close(testData)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// smuggle the key
|
|
letter.Keys = append(letter.Keys, &jess.Seal{
|
|
Value: s1e.Key,
|
|
})
|
|
t.Logf("letter with smuggled key: %+v", letter)
|
|
|
|
// pack
|
|
data, err := letter.ToDSD(dsd.JSON)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
_, _, _, err = OpenHubMsg(nil, data, "test", true) //nolint:dogsled
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|