Skip to content

Commit f7cee89

Browse files
committed
Address comments
1 parent 429abf7 commit f7cee89

2 files changed

Lines changed: 52 additions & 19 deletions

File tree

note/note.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ var (
4343
// - 0x04 ed25519 Cosignature/V1
4444
// - 0x06 ML-DSA-44 Cosignature/V1
4545
func NewSigner(skey string) (Signer, error) {
46-
priv1, skey, _ := strings.Cut(skey, "+")
47-
priv2, skey, _ := strings.Cut(skey, "+")
48-
name, skey, _ := strings.Cut(skey, "+")
49-
hash16, key64, _ := strings.Cut(skey, "+")
46+
priv1, k, _ := strings.Cut(skey, "+")
47+
priv2, k, _ := strings.Cut(k, "+")
48+
name, k, _ := strings.Cut(k, "+")
49+
hash16, key64, _ := strings.Cut(k, "+")
5050
key, err := base64.StdEncoding.DecodeString(key64)
5151
if priv1 != "PRIVATE" || priv2 != "KEY" || len(hash16) != 8 || err != nil || !isValidName(name) || len(key) == 0 {
5252
return nil, errSignerID

note/note_test.go

Lines changed: 48 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,53 @@ import (
1010
"golang.org/x/mod/sumdb/note"
1111
)
1212

13+
func TestSignerVerifier(t *testing.T) {
14+
ns, nv, err := note.GenerateKey(nil, "note")
15+
if err != nil {
16+
t.Fatalf("note.GenerateKey: %v", err)
17+
}
18+
ms, mv, err := GenerateMLDSAKey("mldsa")
19+
if err != nil {
20+
t.Fatalf("GenerateMLDSAKey: %v", err)
21+
}
22+
23+
for _, test := range []struct {
24+
name string
25+
s string
26+
v string
27+
} {
28+
{name: "note", s: ns, v: nv},
29+
{name: "mldsa", s: ms, v: mv},
30+
} {
31+
t.Run(test.name, func(t *testing.T) {
32+
ns, err := NewSigner(test.s)
33+
if err != nil {
34+
t.Fatalf("NewSigner: %v", err)
35+
}
36+
nv, err := NewVerifier(test.v)
37+
if err != nil {
38+
t.Fatalf("NewVerifier: %v", err)
39+
}
40+
checkRoundTrip(t, fmt.Sprintf("%s\n0\nblah\n", test.name), ns, nv)
41+
})
42+
}
43+
}
44+
45+
func checkRoundTrip(t *testing.T, msg string, s note.Signer, v note.Verifier) {
46+
t.Helper()
47+
signed, err := note.Sign(&note.Note{Text: msg}, s)
48+
if err != nil {
49+
t.Errorf("%s failed to sign: %v", msg, err)
50+
}
51+
n, err := note.Open(signed, note.VerifierList(v))
52+
if err != nil {
53+
t.Errorf("%s failed to open: %v", msg, err)
54+
}
55+
if n.Text != msg {
56+
t.Errorf("got %q want %q", n.Text, msg)
57+
}
58+
}
59+
1360
func TestNoteInterop(t *testing.T) {
1461
sk, vk, err := note.GenerateKey(nil, "example")
1562
if err != nil {
@@ -37,21 +84,7 @@ func TestNoteInterop(t *testing.T) {
3784
for i, s := range []note.Signer{sf, sn} {
3885
for j, v := range []note.Verifier{vf, vn} {
3986
msg := fmt.Sprintf("%d, %d\n", i, j)
40-
signed, err := note.Sign(&note.Note{Text: msg}, s)
41-
if err != nil {
42-
t.Errorf("%s failed to sign: %v", msg, err)
43-
continue
44-
}
45-
46-
n, err := note.Open(signed, note.VerifierList(v))
47-
if err != nil {
48-
t.Errorf("%s failed to open: %v", msg, err)
49-
continue
50-
}
51-
52-
if n.Text != msg {
53-
t.Errorf("got %q want %q", n.Text, msg)
54-
}
87+
checkRoundTrip(t, msg, s, v)
5588
}
5689
}
5790
}

0 commit comments

Comments
 (0)