51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
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)
|
|
|
|
ed25519V, ok := v.(varsig.EdDSAVarsig)
|
|
require.True(t, ok)
|
|
|
|
assert.Equal(t, varsig.Version1, ed25519V.Version())
|
|
assert.Equal(t, varsig.AlgorithmEdDSA, ed25519V.Algorithm())
|
|
assert.Equal(t, varsig.CurveEd25519, ed25519V.Curve())
|
|
assert.Equal(t, varsig.HashSha2_512, ed25519V.Hash())
|
|
assert.Equal(t, varsig.PayloadEncodingDAGCBOR, ed25519V.PayloadEncoding())
|
|
})
|
|
|
|
t.Run("Encode", func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
edDSAVarsig := varsig.NewEdDSAVarsig(
|
|
varsig.CurveEd25519,
|
|
varsig.HashSha2_512,
|
|
varsig.PayloadEncodingDAGCBOR,
|
|
)
|
|
|
|
assert.Equal(t, example, edDSAVarsig.Encode())
|
|
t.Log(base64.RawStdEncoding.EncodeToString(edDSAVarsig.Encode()))
|
|
})
|
|
}
|