diff --git a/methods/did-key/key.go b/methods/did-key/key.go index 3c39fd7..df9a804 100644 --- a/methods/did-key/key.go +++ b/methods/did-key/key.go @@ -52,7 +52,7 @@ func Decode(identifier string) (did.DID, error) { } func FromPublicKey(pub crypto.PublicKey) did.DID { - return DidKey{msi: pub.ToPublicKeyMultibase()} + return DidKey{msi: pub.ToPublicKeyMultibase(), pubkey: pub} } func FromPrivateKey(priv crypto.PrivateKey) did.DID { diff --git a/methods/did-key/key_test.go b/methods/did-key/key_test.go index 59ba571..b39574f 100644 --- a/methods/did-key/key_test.go +++ b/methods/did-key/key_test.go @@ -55,6 +55,16 @@ func TestMustParseDIDKey(t *testing.T) { }) } +func TestFromPublicKey(t *testing.T) { + pub, _, err := ed25519.GenerateKeyPair() + require.NoError(t, err) + dk := didkey.FromPublicKey(pub) + require.Equal(t, "did:key:"+pub.ToPublicKeyMultibase(), dk.String()) + doc, err := dk.Document() + require.NoError(t, err) + require.NotEmpty(t, doc) +} + func TestEquivalence(t *testing.T) { did0A, err := did.Parse("did:key:z6Mkod5Jr3yd5SC7UDueqK4dAAw5xYJYjksy722tA9Boxc4z") require.NoError(t, err)