-
Notifications
You must be signed in to change notification settings - Fork 516
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
Alice/Faber Demo oddity in JSON-LD VC issuance -- holder always overrides credentialSubject.id with BLS did:key #2015
Comments
@TimoGlastra -- do you recall this? Any ideas on the intended behaviour? |
Also -- I notice that using the Universal Resolver, I can resolve Alice's |
I'm not sure, I know there have been a bunch of (or some) |
@swcurran that did:key looks like a BLS key. I found recently that in order to fulfill the |
That's weird -- there should be no BLS keys involved in what I did. I generated an ed25519 key for Alice (holder), and used it in one example and still got the BLS key in the VC. As well, I did a credential with no ID for also and still got that BLS key. Sounds like a bug to me. Perhaps the controller is overdoing things -- it would be very weird for that to happen in ACA-Py itself. |
I think the universal resolver doesn't support bls did:keys. If I resolve it using the transmute did key resolver it works: https://did.key.transmute.industries/did:key:zUC72B8bP2CGx8BqPer6zg5wA4bU6cUySp6Dc8aZFs62thfkfXW1q9c5oDXn6jn1Gcg97QwRmUfJ7j7Ye1hi7RGms7rQmQKnojGjCxqyWnVLfncXhiJabcs3BD7Ryns94ECeHUq Re the inclusion of the bls key, that is done by the demo. If an offer is received it will create a did on the holder side and put it in the request. The credentialSubject did can be any did and doesn't have to be related to the crypto suite of the credential. The demo should probably check whether a credentialSubject.id is already defined though, and not overwrite it in that case. When I present this credential I would need to short proof of control over that did. Normally the issuer would have to verify this control over the did before issuing the credential, I don't think that's done in the demo.
|
Thanks @TimoGlastra -- that helps. with both parts of the issue. I suppose the demo can do whatever it wants (it's the business logic) so good to know it is not a bug in ACA-Py, and good to know that the In the demo, it looks like the issuer puts the holder's DID into the credential in constructing the I think the following are the improvements to the demo -- does that make sense to you?
I think the above represents what a "generic" holder would do. Of course, any holder can do what they want. Aside: This is where the opinionated element of AnonCreds has helped a lot. We've never had to deal with issues and options like this with AnonCreds, so the behaviour of the different parties is well defined (and the crypto requires it). Here, there are different options at the controller level and all possibilities must be handled. If this works, I suggest that the demo be updated. |
No that's correct. We discussed this during the Aries WG call a while ago and landed on a generic did proof of control protocol. @TelegramSam made a draft of it, not sure where it's at right now? |
I recently adjusted the behavior of the credential subject ID override in #2341. If the issuer knows the appropriate ID to use for the holder, it can set the ID and this cannot be overridden by the holder. If the ID is omitted by the issuer, it can be overridden by the holder during the credential request as before. |
I was ran the demo AliceWantsAJsonCredential.md using an Ed25519Signature2081, I noticed two things that I wonder about.
First, when I put in Alice's
did:key
(in my case:did:key:z6MksTBMW4EeA9hQUYcXSDYmzaKV4fD972b9VL5pGBBPcf2G
) in theid
field ofsubjectCredential
, in the issued credential (held by Alice) theid
was changed to:did:key:zUC72B8bP2CGx8BqPer6zg5wA4bU6cUySp6Dc8aZFs62thfkfXW1q9c5oDXn6jn1Gcg97QwRmUfJ7j7Ye1hi7RGms7rQmQKnojGjCxqyWnVLfncXhiJabcs3BD7Ryns94ECeHUq
.Second, if I leave off the
id
field insubjectCredential
, theid
field was the samedid:key:zUC72B8bP2CGx8BqPer6zg5wA4bU6cUySp6Dc8aZFs62thfkfXW1q9c5oDXn6jn1Gcg97QwRmUfJ7j7Ye1hi7RGms7rQmQKnojGjCxqyWnVLfncXhiJabcs3BD7Ryns94ECeHUq
in the issued credential.Questions:
did:key
value seems to change? Is that supposed to happen?id
field is left out of the issuer'ssend
payload, does theid
get filled in by the Holder automagically (perhaps via a proposal message?)? If so, whatdid:key
is used? In my case, there was just one.The text was updated successfully, but these errors were encountered: