Skip to content
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(WIP): anoncreds updates #2191

Closed

Conversation

dbluhm
Copy link
Contributor

@dbluhm dbluhm commented Mar 31, 2023

This PR is a significant refactor of ACA-Py's handling of Anonymous Credentials, switching to the ledger-agnostic anoncreds-rs library instead of Indy specific libraries we've been using up until this point.

This PR is a work in progress. Given that ACA-Py has been built with Indy-isms and Indy specific libraries since the beginning, there's a lot that needed to be touched in order to move towards a more ledger-agnostic mentality. As of the time of opening this PR, it includes:

  • A pluggable interface for defining AnonCreds Method Plugins, enabling resolution or registration of AnonCreds objects on any ledger/network/resolvable location as long as there is a plugin that implements it.
  • A new set of Admin API endpoints for creating AnonCreds objects in a ledger-agnostic, plugin-friendly way
  • Replaced indy-shared-rs with anoncreds-rs (indy-shared-rs still getting installed but not used)
  • Added builtin plugins for:
    • Legacy Indy (Identifiers not using did:indy urls)
      • Supports registering and resolving Schemas and Credential Definitions; revocation objects are WIP
    • did:indy - Currently just stubbed out
    • did:web - Currently just stubbed out
  • A simple demo script (to be removed and replaced with proper Integration tests) demoing issuance and verification (without revocation currently) on Legacy Indy.
    • This can be run with docker-compose run tests && docker-compose down -v

We are actively working on:

  • Implementing revocation support through the new AnonCreds interface

Things that are very broken right now:

  • The old /schemas and /credential-definitions endpoints
  • Revocation
  • Endorsement

dbluhm and others added 30 commits February 21, 2023 22:46
Signed-off-by: Daniel Bluhm <[email protected]>
Signed-off-by: Char Howland <[email protected]>
Signed-off-by: Adam Burdett <[email protected]>
fix: pull binaries from a temporary location
Signed-off-by: Adam Burdett <[email protected]>
Signed-off-by: Adam Burdett <[email protected]>
Signed-off-by: Char Howland <[email protected]>
Signed-off-by: Char Howland <[email protected]>
Signed-off-by: Char Howland <[email protected]>
Signed-off-by: Adam Burdett <[email protected]>
Signed-off-by: Adam Burdett <[email protected]>
Signed-off-by: Adam Burdett <[email protected]>
dbluhm and others added 26 commits May 5, 2023 16:13
Signed-off-by: Daniel Bluhm <[email protected]>
…-issuance

Issue revocable creds using anoncreds interface
…evocation

feat(revocation): update revocation to track pending state
Signed-off-by: Daniel Bluhm <[email protected]>
Signed-off-by: Daniel Bluhm <[email protected]>
…n-again

feat: implement revocation using anoncreds interface
@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

@dbluhm
Copy link
Contributor Author

dbluhm commented Jun 22, 2023

Closing in favor of #2276

@dbluhm dbluhm closed this Jun 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants