-
Notifications
You must be signed in to change notification settings - Fork 245
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add multi-format VP/VC verifier #3553
Conversation
...ust-core/src/main/java/org/eclipse/edc/iam/identitytrust/core/IdentityAndTrustExtension.java
Show resolved
Hide resolved
...ce/src/main/java/org/eclipse/edc/iam/identitytrust/verification/JwtPresentationVerifier.java
Fixed
Show fixed
Hide fixed
...-trust-service/src/main/java/org/eclipse/edc/iam/identitytrust/verification/LdpVerifier.java
Fixed
Show fixed
Hide fixed
Test Results 625 files + 4 625 suites +4 18m 16s ⏱️ -35s Results for commit 7af34e4. ± Comparison against base commit cba9558. This pull request removes 110 and adds 145 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
Codecov ReportAttention:
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## main #3553 +/- ##
==========================================
- Coverage 72.49% 72.27% -0.22%
==========================================
Files 877 880 +3
Lines 17474 17687 +213
Branches 994 1019 +25
==========================================
+ Hits 12667 12784 +117
- Misses 4391 4466 +75
- Partials 416 437 +21
☔ View full report in Codecov by Sentry. |
30fe45f
to
2ed8214
Compare
24845a5
to
f0498cb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Huge work!
Few comments and questions
...t-service/src/main/java/org/eclipse/edc/iam/identitytrust/validation/rules/IsNotExpired.java
Outdated
Show resolved
Hide resolved
...-credentials/src/main/java/org/eclipse/edc/verifiablecredentials/linkeddata/LdpVerifier.java
Outdated
Show resolved
Hide resolved
...tials/src/main/java/org/eclipse/edc/verifiablecredentials/jwt/SelfIssuedIdTokenVerifier.java
Outdated
Show resolved
Hide resolved
...entials/src/main/java/org/eclipse/edc/verifiablecredentials/jwt/JwtPresentationVerifier.java
Outdated
Show resolved
Hide resolved
...entity-trust-spi/src/main/java/org/eclipse/edc/identitytrust/model/VerifiableCredential.java
Outdated
Show resolved
Hide resolved
...y-trust-spi/src/main/java/org/eclipse/edc/identitytrust/verification/CredentialVerifier.java
Show resolved
Hide resolved
...entials/src/main/java/org/eclipse/edc/verifiablecredentials/jwt/JwtPresentationVerifier.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
added LDP verifier, added SignatureSuiteRegistry to host multiple SignatureSuites, made the TestDocumentLoader more generally available, BREAKING CHANGE: the TestResourceLoader was renamed to TestDocumentLoader, and moved
a32887b
to
7af34e4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! 🚀
What this PR changes/adds
This PR adds a verifier structure, which can verify
ldp_vp
,ldp_vc
,jwt_vp
andjwt_vc
objects by using a flexible delegate mechanism. It is possible to mix-and-match them, for example one could have:NB: according to their schema, LDP-VPs can only contain LDP-VCs, even if the spec doesn't really mandate that.
Why it does that
Being able to handle different formats of VPs, and different formats of VCs.
Further notes
Due to shortcomings in its implementation I abandoned the
Verifier
API of theiron-verifiable-credentials
library (for LDP), for example, i doesn't properly handle multiple VCs in a presentation. Instead, I re-implemented the same behaviour in the EDC code base.Ultimately, I want to get rid of the
iron-verifiable-credentials
lib altogether, but that will require some more work in the following areas:These endeavors will happen in subsequent PRs, once the basic functionality is there.
Linked Issue(s)
Closes #3533
Please be sure to take a look at the contributing guidelines and our etiquette for pull requests.