hyperledger-archives / aries-framework-go

Hyperledger Aries Framework Go provides packages for building Agent / DIDComm services.
https://wiki.hyperledger.org/display/ARIES/aries-framework-go
Apache License 2.0
241 stars 158 forks source link

didexchange not support EcdsaSecp256k1VerificationKey2019 #3562

Open huangzhiran opened 1 year ago

huangzhiran commented 1 year ago

What I'm trying to do

i am trying to build didexchange connection with other DID

Expected result

got error when "accept-invitation"

Actual result the error msg is did exchange client - accept exchange invitation: failed to execute state action 'requested': outboundDispatcher.Send: failed to pack msg: packMessage: prepareSenderAndRecipientKeys: for recipient 1: resolveKeyAgreementFromDIDDoc: invalid KeyAgreement type 1: EcdsaSecp256k1VerificationKey2019

and i see https://github.com/hyperledger/aries-framework-go/blob/main/pkg/didcomm/packager/packager.go#L467 there are no EcdsaSecp256k1VerificationKey2019 support

Sample code / test case my did doc { "@context": ["https://www.w3.org/ns/did/v1", "https://w3id.org/security/suites/secp256k1-2019/v1"], "id": "did:io:0xAb0DA975C48F79951B1aB7F455680CCDA72F7C7a", "verificationMethod": [{ "id": "did:io:0xAb0DA975C48F79951B1aB7F455680CCDA72F7C7a#key-0", "type": "EcdsaSecp256k1VerificationKey2019", "controller": "did:io:0xAb0DA975C48F79951B1aB7F455680CCDA72F7C7a", "publicKeyBase58": "25Tca5MujAzUF3wBMPeFxpS3hh9yV8Ceb1uUmk6PqcEwT" }], "authentication": ["did:io:0xAb0DA975C48F79951B1aB7F455680CCDA72F7C7a#key-0"], "assertionMethod": ["did:io:0xAb0DA975C48F79951B1aB7F455680CCDA72F7C7a#key-0"], "service": [{ "id": "did:io:0xAb0DA975C48F79951B1aB7F455680CCDA72F7C7a#did-communication", "type": "did-communication", "serviceEndpoint": "http://localhost:9081", "recipientKeys": ["did:io:0xAb0DA975C48F79951B1aB7F455680CCDA72F7C7a#key-0"], "accept": ["didcomm/aip2;env=rfc587", "didcomm/aip2;env=rfc19"] }, { "id": "did:io:0xAb0DA975C48F79951B1aB7F455680CCDA72F7C7a#DIDCommMessaging", "type": "DIDCommMessaging", "serviceEndpoint": "http://localhost:9081", "recipientKeys": ["did:io:0xAb0DA975C48F79951B1aB7F455680CCDA72F7C7a#key-0"], "accept": ["didcomm/v2"] }], "keyAgreement": ["did:io:0xAb0DA975C48F79951B1aB7F455680CCDA72F7C7a#key-0"] }

how can i use EcdsaSecp256k1VerificationKey2019 with aries ? thanks