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

Add proof type issue/present option #197

Merged
merged 1 commit into from
Jun 21, 2021
Merged

Conversation

clehner
Copy link
Member

@clehner clehner commented Jun 11, 2021

Signature suite Ethereum EIP712 Signature 2021 (proposed work item: w3c-ccg/community#194) does not define a new verification method but only a signing method (proof type), and is meant to be used with existing verification methods EcdsaSecp256k1VerificationKey2019 or EcdsaSecp256k1RecoveryMethod2020. For proof creation with vc-http-api, the verificationMethod option of the issue/present credential options is then no longer sufficient to identify the type of proof to create, since there is not a one-to-one correspondance of verification method type to proof type. This PR adds a type option for use in situations such as this where there is more than one type of proof that could be issued.

Edit: relevant issue #47.
This also could be useful if one wants to choose between using e.g. Ed25519Signature2018 or Ed25519Signature2020 when the issuer/holder is using did:key.

@@ -41,6 +44,7 @@ components:
description: The type of credential status to issue the credential with
example:
{
"type": "https://w3id.org/security#Ed25519Signature2018",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now the question becomes... why is type a fully qualified URL and assertionMethod is not. :)

We could go two ways on this -- include an @context (probably overkill), or require full URLs in options (probably annoying).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Amended to use the compact form, for consistency with the other options and existing conventions for proof objects.

@@ -34,6 +37,7 @@ components:
description: The intended domain of validity for the proof. For example website.example
example:
{
"type": "https://w3id.org/security#Ed25519Signature2018",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same issue as above.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@clehner
Copy link
Member Author

clehner commented Jun 15, 2021

@OR13 I think in #47 you were suggesting to not use a key of one type with multiple signature suites; I wonder if that still your opinion, or do you think this is a good approach?

@OR13
Copy link
Contributor

OR13 commented Jun 15, 2021

@clehner I am no longer certain that proof.type -> verificationMethod.type should be a 1-1 binding, but this work item is probably not the place to sort this out... from a security perspective, its possible to verify a VC where this is not a 1-1 mapping, I tend to treat that as the rule of law....

@msporny msporny self-requested a review June 21, 2021 18:54
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.

3 participants