types/tkatype: add test for MarshaledSignature's JSON format

Lock in its wire format before a potential change to its Go type.

Updates #1909

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
pull/8969/head
Brad Fitzpatrick 1 year ago committed by Brad Fitzpatrick
parent 7dec09d169
commit 93a806ba31

@ -4,6 +4,7 @@
package tkatype package tkatype
import ( import (
"encoding/json"
"testing" "testing"
"golang.org/x/crypto/blake2s" "golang.org/x/crypto/blake2s"
@ -20,3 +21,23 @@ func TestSigHashSize(t *testing.T) {
t.Errorf("NKSSigHash is wrong size: got %d, want %d", len(nksHash), blake2s.Size) t.Errorf("NKSSigHash is wrong size: got %d, want %d", len(nksHash), blake2s.Size)
} }
} }
func TestMarshaledSignatureJSON(t *testing.T) {
sig := MarshaledSignature("abcdef")
j, err := json.Marshal(sig)
if err != nil {
t.Fatal(err)
}
const encoded = `"YWJjZGVm"`
if string(j) != encoded {
t.Errorf("got JSON %q; want %q", j, encoded)
}
var back MarshaledSignature
if err := json.Unmarshal([]byte(encoded), &back); err != nil {
t.Fatal(err)
}
if string(back) != string(sig) {
t.Errorf("decoded JSON back to %q; want %q", back, sig)
}
}

Loading…
Cancel
Save