62 lines
2.1 KiB
Go
62 lines
2.1 KiB
Go
package didkey
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/INFURA/go-did"
|
|
)
|
|
|
|
func TestDocument(t *testing.T) {
|
|
d, err := did.Parse("did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK")
|
|
require.NoError(t, err)
|
|
|
|
doc, err := d.Document()
|
|
require.NoError(t, err)
|
|
|
|
bytes, err := json.MarshalIndent(doc, "", " ")
|
|
require.NoError(t, err)
|
|
|
|
// TODO: https://github.com/w3c-ccg/did-key-spec/issues/71
|
|
|
|
const expected = `{
|
|
"@context": [
|
|
"https://www.w3.org/ns/did/v1",
|
|
"https://w3id.org/security/suites/ed25519-2020/v1",
|
|
"https://w3id.org/security/suites/x25519-2020/v1"
|
|
],
|
|
"id": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
|
|
"verificationMethod": [{
|
|
"id": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK#z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
|
|
"type": "Ed25519VerificationKey2020",
|
|
"controller": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
|
|
"publicKeyMultibase": "z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
|
|
}],
|
|
"authentication": [
|
|
"did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK#z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
|
|
],
|
|
"assertionMethod": [
|
|
"did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK#z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
|
|
],
|
|
"capabilityDelegation": [
|
|
"did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK#z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
|
|
],
|
|
"capabilityInvocation": [
|
|
"did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK#z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
|
|
],
|
|
"keyAgreement": [{
|
|
"id": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK#z6LSj72tK8brWgZja8NLRwPigth2T9QRiG1uH9oKZuKjdh9p",
|
|
"type": "X25519KeyAgreementKey2020",
|
|
"controller": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
|
|
"publicKeyMultibase": "z6LSj72tK8brWgZja8NLRwPigth2T9QRiG1uH9oKZuKjdh9p"
|
|
}]
|
|
}`
|
|
|
|
require.JSONEq(t, expected, string(bytes))
|
|
}
|
|
|
|
// TODO: test vectors:
|
|
// https://github.com/w3c-ccg/did-key-spec/tree/main/test-vectors
|