hyperledger-labs / business-partner-agent

The Business Partner Agent is a SSI wallet and controller based on aries cloud agent python.
https://labs.hyperledger.org/business-partner-agent/
Apache License 2.0
56 stars 49 forks source link

Allow selective disclosure when answering a presentation request #800

Open etschelp opened 2 years ago

etschelp commented 2 years ago

Indy:

Currently all attributes are always revealed when answering a presentation request. This could stay as the default option, but it makes sense to have the option (per attribute, or attribute group, depending on the request) not to reveal information, this could be as simple as a checkbox.

Dif:

Same as above but on top we need the option to switch between Ed25519S and bbs+ when issuing credentials and sending the presentation request. Also the dif request needs a different format and the limit disclosure flag in this case.

swcurran commented 2 years ago

Two things on this.

First, we're trying to shift the term "Indy" (as you have used it) to "AnonCreds", as we now have running examples of using AnonCreds verifiable credentials without using Indy -- essentially, ledger-agnostic AnonCreds. Several implementations are pending. We'll be merging a PR into the AnonCreds Specification about that.

Second: We've discovered that ACA-Py is marking as "verification=false" if the prover marks attributes as "unrevealed", which we think is wrong. We're looking at the code in ACA-Py around that to see if there are any other conditions that are flagged where the AnonCreds verification is true (e.g. the cryptography checks out), but that ACA-Py is flagging as failing the verification. This just came up in the last couple of days in this issue. Please weigh in on that issue if you have ideas about how this change should be made.

Thanks!

etschelp commented 2 years ago

break implementation down into four parts: