Skip to content

4.8 Expiration #496

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

Closed
nadalin opened this issue Mar 27, 2019 · 10 comments
Closed

4.8 Expiration #496

nadalin opened this issue Mar 27, 2019 · 10 comments
Labels
pending close Close if no objection within 7 days
Milestone

Comments

@nadalin
Copy link

nadalin commented Mar 27, 2019

Suggest that values like expirationDate be changed to match the JWT values already established in the industry, no need to make new claims since when using a JWT you have to use exp anyway and understand the processing

@burnburn burnburn added this to the CR-Exit milestone Mar 27, 2019
@brentzundel
Copy link
Member

A verifiable credential is not a JWT. It has properties that a JWT does not and allows for usages that (to my understanding) JWTs do not.
I do not see the value in conflating the two by using the same names for their property values.

@awoie
Copy link
Contributor

awoie commented Apr 2, 2019

JWTs use exp to represent the expirationDate. The VC spec defines processing rules on how to convert a JWT VC that uses standard JOSE claims and headers onto the vocabulary specified in the VC spec.

@nadalin
Copy link
Author

nadalin commented Apr 2, 2019

@awoie Why not use exp? is there a need to invent ?

@msporny
Copy link
Member

msporny commented Apr 4, 2019

@nadalin wrote:

Why not use exp? is there a need to invent ?

The datatype associated with JWT exp is a POSIX time value (seconds since 1970, e.g. 1300819380)... the datatype associated with the Verifiable Credentials Data Model spec's expirationDate is a RFC3339 combined date and time string (e.g., "2020-01-01T19:23:24Z"), therefore it would be inappropriate to use exp in this particular case.

@nadalin
Copy link
Author

nadalin commented Apr 4, 2019

@msporny For many cases the JWT "exp" is fine, for others it may not be, all existing JWT claims should be allowed to be used ASIS for interoperability reasons

@stonematt stonematt mentioned this issue Apr 14, 2019
@stonematt stonematt added the ready for PR This issue is ready for a Pull Request to be created to resolve it label Apr 14, 2019
@stonematt
Copy link
Contributor

VCWG Teleconference Resolution: https://www.w3.org/2019/04/09-vcwg-minutes.html#resolution08

RESOLUTION: Re-using the JWT "exp" claim in a Verifiable Credential is not appropriate because the datatype associated with JWT "exp" is a POSIX time value and the datatype associated with the expirationDate is a RFC3339 combined date and time string. The VCWG prefers the more verbose datatype. Non-normative text should be added to the specification on how deterministic and bi-directional translation should be done and issue #496 should be closed after that PR is
... merged into the specification.

@w3c w3c deleted a comment from stonematt Apr 14, 2019
@msporny
Copy link
Member

msporny commented Apr 14, 2019

PR #539 is designed to address this issue. There is text in the specification already on how to convert to/from datetimes in the section on JWTs: https://w3c.github.io/vc-data-model/#jwt-encoding and https://w3c.github.io/vc-data-model/#jwt-decoding.

This issue can be closed as soon as PR #539 is merged and the 7 day close delay is over.

@msporny msporny added Pending 7day close and removed ready for PR This issue is ready for a Pull Request to be created to resolve it labels Apr 14, 2019
@nadalin
Copy link
Author

nadalin commented Apr 15, 2019

@msporny if a "exp" is all that is needed then it should be acceptable, there is no requirement in the specification that says there is a dependency on RFC3339. So don't agree with the proposed change

@brentzundel
Copy link
Member

The text which describes the required dependency on RFC3339 for expiration dates is in section 4.8.

The value of the expirationDate property MUST be a string value of an [RFC3339] combined date and time string representing the date and time the credential ceases to be valid.

The text which describes the need to convert from RFC3339 to a UNIX timestamp if the VC is serialized as a JWT is in section 6.3.1

exp MUST represent expirationDate, encoded as a UNIX timestamp (NumericDate).

And the text which describes the need to convert from a UNIX timestamp to RFC3339 when moving from a JWT serialization of a VC is in section 3.6.1

To transform the JWT specific headers and claims, the following MUST be done. If: exp is present, the UNIX timestamp MUST be converted to an [RFC3339] date-time, and MUST be used to set the value of the expirationDate property of credentialSubject of the new JSON object.

@brentzundel brentzundel added pending close Close if no objection within 7 days and removed Pending 7day close labels Apr 16, 2019
@burnburn
Copy link
Contributor

This issue appears to have been resolved with the additional explanation from @brentzundel , and no new comments have been added in the past 28 days. Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pending close Close if no objection within 7 days
Projects
None yet
Development

No branches or pull requests

6 participants