Files
ucan/did/crypto_test.go
2024-09-09 08:50:15 -04:00

34 lines
724 B
Go

package did_test
import (
"bytes"
"encoding/binary"
"testing"
"github.com/libp2p/go-libp2p/core/crypto"
"github.com/multiformats/go-multicodec"
"github.com/stretchr/testify/require"
"github.com/ucan-wg/go-ucan/v1/did"
)
func TestFromPubKey(t *testing.T) {
t.Parallel()
const example = "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
id, err := did.Parse(example)
require.NoError(t, err)
buf := bytes.NewBuffer(id.Bytes())
code, err := binary.ReadUvarint(buf)
require.NoError(t, err)
require.Equal(t, uint64(multicodec.Ed25519Pub), code)
pubKey, err := crypto.UnmarshalEd25519PublicKey(buf.Bytes())
require.NoError(t, err)
id2, err := did.FromPubKey(pubKey)
require.Equal(t, id, id2)
}