Skip to content

Commit e5376a0

Browse files
authored
Witness submission prefix is a config item. (#756)
1 parent 418b026 commit e5376a0

3 files changed

Lines changed: 22 additions & 33 deletions

File tree

internal/witness/witness_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,11 @@ func TestWitnessGateway_Update(t *testing.T) {
8888
if err != nil {
8989
t.Fatal(err)
9090
}
91-
wit1, err = tessera.NewWitness(wit1Vkey, baseURL)
91+
wit1, err = tessera.NewWitness(wit1Vkey, baseURL.JoinPath("wit1"))
9292
if err != nil {
9393
t.Fatal(err)
9494
}
95-
wit2, err = tessera.NewWitness(wit2Vkey, baseURL)
95+
wit2, err = tessera.NewWitness(wit2Vkey, baseURL.JoinPath("wit2"))
9696
if err != nil {
9797
t.Fatal(err)
9898
}
@@ -423,11 +423,11 @@ func TestWitnessReusesProofs(t *testing.T) {
423423
}))
424424
baseURL := mustURL(t, ts.URL)
425425
var err error
426-
wit1, err = tessera.NewWitness(wit1Vkey, baseURL)
426+
wit1, err = tessera.NewWitness(wit1Vkey, baseURL.JoinPath("wit1"))
427427
if err != nil {
428428
t.Fatal(err)
429429
}
430-
wit2, err = tessera.NewWitness(wit2Vkey, baseURL)
430+
wit2, err = tessera.NewWitness(wit2Vkey, baseURL.JoinPath("wit2"))
431431
if err != nil {
432432
t.Fatal(err)
433433
}

witness.go

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ package tessera
1616

1717
import (
1818
"bufio"
19-
"crypto/sha256"
20-
"encoding/base64"
2119
"fmt"
2220
"io"
2321
"net/url"
@@ -189,16 +187,8 @@ func NewWitness(vkey string, witnessRoot *url.URL) (Witness, error) {
189187
if err != nil {
190188
return Witness{}, err
191189
}
192-
// "key hash" MUST be a lowercase hex-encoded SHA-256 hash of a 32-byte Ed25519 public key.
193-
// This expression cuts off the identity name and hash.
194-
key64 := strings.SplitAfterN(vkey, "+", 3)[2]
195-
key, err := base64.StdEncoding.DecodeString(key64)
196-
if err != nil {
197-
return Witness{}, err
198-
}
199-
h := sha256.Sum256(key)
200190

201-
u := witnessRoot.JoinPath(fmt.Sprintf("/%x/add-checkpoint", h))
191+
u := witnessRoot.JoinPath("/add-checkpoint")
202192

203193
return Witness{
204194
Key: v,
@@ -298,4 +288,3 @@ func (wg WitnessGroup) Endpoints() map[string]note.Verifier {
298288
}
299289
return endpoints
300290
}
301-

witness_test.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ const (
1919
)
2020

2121
var (
22-
bastion1, _ = url.Parse("https://b1.example.com/")
23-
bastion2, _ = url.Parse("https://b2.example.com/")
24-
wit1, _ = tessera.NewWitness(wit1_vkey, bastion1)
25-
wit2, _ = tessera.NewWitness(wit2_vkey, bastion1)
26-
wit3, _ = tessera.NewWitness(wit3_vkey, bastion2)
27-
wit1Sign, _ = note.NewSigner(wit1_skey)
28-
wit2Sign, _ = note.NewSigner(wit2_skey)
29-
wit3Sign, _ = note.NewSigner(wit3_skey)
22+
bastion, _ = url.Parse("https://b1.example.com/")
23+
directURL, _ = url.Parse("https://witness.example.com/")
24+
wit1, _ = tessera.NewWitness(wit1_vkey, bastion.JoinPath("wit1prefix"))
25+
wit2, _ = tessera.NewWitness(wit2_vkey, bastion.JoinPath("wit2prefix"))
26+
wit3, _ = tessera.NewWitness(wit3_vkey, directURL)
27+
wit1Sign, _ = note.NewSigner(wit1_skey)
28+
wit2Sign, _ = note.NewSigner(wit2_skey)
29+
wit3Sign, _ = note.NewSigner(wit3_skey)
3030
)
3131

3232
func TestWitnessGroup_Empty(t *testing.T) {
@@ -144,34 +144,34 @@ func TestWitnessGroup_URLs(t *testing.T) {
144144
{
145145
desc: "witness 1",
146146
group: tessera.NewWitnessGroup(1, wit1),
147-
expectedURLs: []string{"https://b1.example.com/b490a162bf632bdd72181cd9eb5b8ab8b13e4e973a9ce9a12a0810fd981bc186/add-checkpoint"},
147+
expectedURLs: []string{"https://b1.example.com/wit1prefix/add-checkpoint"},
148148
},
149149
{
150150
desc: "witness 2",
151151
group: tessera.NewWitnessGroup(1, wit2),
152-
expectedURLs: []string{"https://b1.example.com/7a99cf3d04ea875d413c4b3fb70d74ef483efaf667eac56e35f0b96a112b1c84/add-checkpoint"},
152+
expectedURLs: []string{"https://b1.example.com/wit2prefix/add-checkpoint"},
153153
},
154154
{
155155
desc: "witness 3",
156156
group: tessera.NewWitnessGroup(1, wit3),
157-
expectedURLs: []string{"https://b2.example.com/ae59f4e59ea1802501b6000f875f09eb49d267055d4a1df8b6d862edc004334c/add-checkpoint"},
157+
expectedURLs: []string{"https://witness.example.com/add-checkpoint"},
158158
},
159159
{
160160
desc: "all witnesses in one group",
161161
group: tessera.NewWitnessGroup(1, wit1, wit2, wit3),
162162
expectedURLs: []string{
163-
"https://b1.example.com/b490a162bf632bdd72181cd9eb5b8ab8b13e4e973a9ce9a12a0810fd981bc186/add-checkpoint",
164-
"https://b1.example.com/7a99cf3d04ea875d413c4b3fb70d74ef483efaf667eac56e35f0b96a112b1c84/add-checkpoint",
165-
"https://b2.example.com/ae59f4e59ea1802501b6000f875f09eb49d267055d4a1df8b6d862edc004334c/add-checkpoint",
163+
"https://b1.example.com/wit1prefix/add-checkpoint",
164+
"https://b1.example.com/wit2prefix/add-checkpoint",
165+
"https://witness.example.com/add-checkpoint",
166166
},
167167
},
168168
{
169169
desc: "all witnesses with duplicates in nests",
170170
group: tessera.NewWitnessGroup(2, tessera.NewWitnessGroup(1, wit1, wit2), tessera.NewWitnessGroup(1, wit1, wit3)),
171171
expectedURLs: []string{
172-
"https://b1.example.com/b490a162bf632bdd72181cd9eb5b8ab8b13e4e973a9ce9a12a0810fd981bc186/add-checkpoint",
173-
"https://b1.example.com/7a99cf3d04ea875d413c4b3fb70d74ef483efaf667eac56e35f0b96a112b1c84/add-checkpoint",
174-
"https://b2.example.com/ae59f4e59ea1802501b6000f875f09eb49d267055d4a1df8b6d862edc004334c/add-checkpoint",
172+
"https://b1.example.com/wit1prefix/add-checkpoint",
173+
"https://b1.example.com/wit2prefix/add-checkpoint",
174+
"https://witness.example.com/add-checkpoint",
175175
},
176176
},
177177
}

0 commit comments

Comments
 (0)