test(ucan): add test for updated UCAN example varsig

This commit is contained in:
Steve Moyer
2025-07-10 06:11:07 -04:00
committed by Steve Moyer
parent 5fb3516d15
commit 25d4579b29
2 changed files with 43 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
package varsig_test
import (
"encoding/base64"
"encoding/hex"
"testing"
@@ -56,3 +57,44 @@ func TestDecodeEd25519(t *testing.T) {
})
})
}
func TestUCANExampleV1(t *testing.T) {
t.Parallel()
// This test is the value shown in the UCAN v1.0.0 example, which is
// an EdDSA varsig = v1 with the Ed25519 curve, SHA2_256 hashing and
// DAG-CBOR content encoding.
example, err := base64.RawStdEncoding.DecodeString("NAHtAe0BE3E")
require.NoError(t, err)
t.Run("Decode", func(t *testing.T) {
t.Parallel()
v, err := varsig.Decode(example)
require.NoError(t, err)
rsaV, ok := v.(varsig.EdDSAVarsig)
require.True(t, ok)
assert.Equal(t, varsig.Version1, rsaV.Version())
assert.Equal(t, varsig.DiscriminatorEdDSA, rsaV.Discriminator())
assert.Equal(t, varsig.CurveEd25519, rsaV.Curve())
assert.Equal(t, varsig.HashAlgorithmSHA512, rsaV.HashAlgorithm())
assert.Equal(t, varsig.PayloadEncodingDAGCBOR, rsaV.PayloadEncoding())
assert.Len(t, rsaV.Signature(), 0)
})
t.Run("Encode", func(t *testing.T) {
t.Parallel()
edDSAVarsig, err := varsig.NewEdDSAVarsig(
varsig.CurveEd25519,
varsig.HashAlgorithmSHA512,
varsig.PayloadEncodingDAGCBOR,
)
require.NoError(t, err)
assert.Equal(t, example, edDSAVarsig.Encode())
t.Log(base64.RawStdEncoding.EncodeToString(edDSAVarsig.Encode()))
})
}

View File

@@ -52,7 +52,7 @@ func TestRSAVarsig(t *testing.T) {
})
}
func TestUCANExample(t *testing.T) {
func TestUCANExampleV0(t *testing.T) {
t.Parallel()
const keyLen = 0x100