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

Remove support for versions below draft 11 #75

Open
TimoGlastra opened this issue Nov 15, 2023 · 5 comments
Open

Remove support for versions below draft 11 #75

TimoGlastra opened this issue Nov 15, 2023 · 5 comments

Comments

@TimoGlastra
Copy link
Collaborator

When developing on this library, over time it has lost some of the simplicity due to several formats and protocol versions being supported.

We have targeted Draft 8 before, but now are mainly working on Draft 11 and possibly newer drafts (maybe 19 or another one). To improve maintainability, I propose support for Draft 8 and 9 is removed. This will allow us to remove a lot of transformation code, and also simplify a lot of small issues currently encountered with this library.

Thoughts on removing support for drafts below 11? People still wanting to support these older drafts could stick to an older version of the library for now

@nklomp
Copy link
Contributor

nklomp commented Nov 15, 2023

Yeah agreed. For VP/SIOP we have to be a bit more careful, but for VCI it is not problem. We do have version 8 or 9 in the DIIP profile though 😱

@TimoGlastra
Copy link
Collaborator Author

Hmm good point. But I thought we used draft 11 for DIIP. We showed interop for DIIP based on draft 11 (as that's the only one your issuer supports)

@nklomp
Copy link
Contributor

nklomp commented Nov 23, 2023

Yeah, somehow we managed to not specify the actual version for VCI in DIIP 😂
Given the issuer has always been draft 11 anyway, as it was developer later then the client lib, let's just drop v8/v9 support altogether.

I think one discussion we need to have is whether we will wait for the next version in which the inline offers are removed and replaced by id's only or not and then only support that version

@TimoGlastra
Copy link
Collaborator Author

It seems draft 12 has just been published: https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html

Lots of changes here, with some notable ones the offer credentials being only strings now, and the credentials_supported being a map again, so we're back to what it was a couple of drafts ago it seems.

Do we just want to support that version? There's a lot of interop demonstrations currently based on draft 11, so I think dropping draft 11 will have a bigger impact. But with the vast amount of changes, it would be nice to just get rid of everything but the latest draft.

@nklomp
Copy link
Contributor

nklomp commented Jan 10, 2024

BTW small update on this one

After the current SD-JWT work has landed, we will be updating this monorepo and also bring in the SIOP /OID4VP as modules. Reason is there is certain overlap and then having the modules next to one-another helps. In certain scenarios for instance doing a SIOP call from within a VCI context makes sense. That is of course next to having shared interfaces between the two of them.

We will also drop support for non-latest versions when starting that work as the specs seem to become a bit more stable. This means we will remove most of the version discovery, which should simplify the code drastically.
Given work on MDL/Mdoc will be landing as well, we want to simplify the burden of supporting a lot of versions. It has served us well in interop cases up till this point, but there simply are too many draft versions, having a significant impact on the code and potential for bugs etc.

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

No branches or pull requests

2 participants