Files
varsig/eddsa_test.go

51 lines
1.3 KiB
Go
Raw Permalink Normal View History

package varsig_test
import (
"encoding/base64"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/ucan-wg/go-varsig"
)
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)
2025-07-10 10:21:31 -04:00
ed25519V, ok := v.(varsig.EdDSAVarsig)
require.True(t, ok)
2025-07-10 10:21:31 -04:00
assert.Equal(t, varsig.Version1, ed25519V.Version())
2025-08-05 15:35:12 +02:00
assert.Equal(t, varsig.AlgorithmEdDSA, ed25519V.Algorithm())
2025-07-10 10:21:31 -04:00
assert.Equal(t, varsig.CurveEd25519, ed25519V.Curve())
assert.Equal(t, varsig.HashSha2_512, ed25519V.Hash())
2025-07-10 10:21:31 -04:00
assert.Equal(t, varsig.PayloadEncodingDAGCBOR, ed25519V.PayloadEncoding())
})
t.Run("Encode", func(t *testing.T) {
t.Parallel()
2025-07-28 18:40:45 +02:00
edDSAVarsig := varsig.NewEdDSAVarsig(
varsig.CurveEd25519,
varsig.HashSha2_512,
varsig.PayloadEncodingDAGCBOR,
)
assert.Equal(t, example, edDSAVarsig.Encode())
t.Log(base64.RawStdEncoding.EncodeToString(edDSAVarsig.Encode()))
})
}