From 25d4579b291dec69d8f1e9432fe223d04211cd92 Mon Sep 17 00:00:00 2001 From: Steve Moyer Date: Thu, 10 Jul 2025 06:11:07 -0400 Subject: [PATCH] test(ucan): add test for updated UCAN example varsig --- eddsa_test.go | 42 ++++++++++++++++++++++++++++++++++++++++++ rsa_test.go | 2 +- 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/eddsa_test.go b/eddsa_test.go index 342f8d1..875cff2 100644 --- a/eddsa_test.go +++ b/eddsa_test.go @@ -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())) + }) +} diff --git a/rsa_test.go b/rsa_test.go index 6f64184..7f22236 100644 --- a/rsa_test.go +++ b/rsa_test.go @@ -52,7 +52,7 @@ func TestRSAVarsig(t *testing.T) { }) } -func TestUCANExample(t *testing.T) { +func TestUCANExampleV0(t *testing.T) { t.Parallel() const keyLen = 0x100