openwallet-foundation / acapy

ACA-Py is a foundation for building decentralized identity applications and services running in non-mobile environments.
https://aca-py.org
Apache License 2.0
420 stars 513 forks source link

feat: verify creds signed with Ed25519VerificationKey2020 #3244

Closed dbluhm closed 2 months ago

dbluhm commented 2 months ago

This PR adds support for verifying JSON-LD Credentials using a verification method of type Ed25519VerificationKey2020.

I'm not thrilled about this approach but I think it's the least disruptive change possible right now. Less disruptive seems like a good idea given @PatStLouis work on supporting VC-DI is already underway.

Sidebar, Patrick, hopefully the VC-DI and VCDM 2.0 implementation handles working with verification methods better than the original LDP-VC code does :sweat_smile: Working on a verification method that has been framed does not feel right.

dbluhm commented 2 months ago

I would rather be able to do something like this code in the didcomm-messaging-python library:

https://github.com/Indicio-tech/didcomm-messaging-python/blob/a0f6b88d39b90552d1a639334b71cb44ce07634e/didcomm_messaging/crypto/backend/askar.py#L76-L108

PatStLouis commented 2 months ago

sorry for my confusion but can't aca-py already do this?

dbluhm commented 2 months ago

sorry for my confusion but can't aca-py already do this?

The Ed25519Signature2020 is supported for issuance and verification but only if used with an Ed25519VerificationKey2018, as it turns out. I thought the same before I ran into the problem while doing some interop testing.

sonarcloud[bot] commented 2 months ago

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarCloud