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

Update OID4VCI implementation #52

Merged
merged 18 commits into from
Apr 30, 2024
Merged

Update OID4VCI implementation #52

merged 18 commits into from
Apr 30, 2024

Conversation

nodh
Copy link
Contributor

@nodh nodh commented Apr 17, 2024

Update our implementation of OpenID for Verifiable Credenital Issuance to latest draft (13, from 2024-02-08).

Far fetched goal is interoperability with EUDIW reference implementations.

The interface for actualliy issuing credentials (Issuer.issueCredential()) now needs some rework, but that should be done in a separate PR.

Fixes #47

@nodh nodh self-assigned this Apr 17, 2024
@acrusage-iaik
Copy link
Contributor

Is this still for review despite the unsuccessful tests?

@nodh
Copy link
Contributor Author

nodh commented Apr 23, 2024

Is this still for review despite the unsuccessful tests?

Yes please! That's one interop test, I'll delete that later.

Copy link
Contributor

@acrusage-iaik acrusage-iaik left a comment

Choose a reason for hiding this comment

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

Some of those TODOs seem quite significant, maybe add some of them as issues?

@nodh nodh mentioned this pull request Apr 24, 2024
@nodh nodh requested a review from acrusage-iaik April 24, 2024 19:15
subjectSyntaxTypesSupported = arrayOf(URN_TYPE_JWK_THUMBPRINT, PREFIX_DID_KEY),
idTokenTypesSupported = arrayOf(IdTokenType.SUBJECT_SIGNED),
responseTypesSupported = listOf(ID_TOKEN),
scopesSupported = listOf(SCOPE_OPENID),
Copy link
Collaborator

Choose a reason for hiding this comment

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

since we're polishing: shouldn't all of these be sorted (to fix order) sets (to eliminate duplicates, since they make no sense) and not lists for good measure?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I agree with sets, but they don't need to be sorted

* Must contain an entry form [IssuerMetadata.authorizationServers].
*/
@SerialName("locations")
val locations: Collection<String>? = null,
Copy link
Collaborator

Choose a reason for hiding this comment

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

again: do we want a set here?

*/
@SerialName("credential_identifiers")
val credentialIdentifiers: Collection<String>? = null,
Copy link
Collaborator

Choose a reason for hiding this comment

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

Set?

*/
@SerialName("order")
val order: Array<String>? = null,
val order: Collection<String>? = null,
Copy link
Collaborator

Choose a reason for hiding this comment

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

set

@SerialName("display")
val display: Collection<DisplayProperties>? = null,
Copy link
Collaborator

Choose a reason for hiding this comment

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

set

*/
@SerialName("type")
val types: Collection<String>? = null,

Copy link
Collaborator

Choose a reason for hiding this comment

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

set

* List of attributes that shall be requested explicitly (selective disclosure),
* or `null` to make no restrictions
*/
val requestedAttributes: List<String>? = null,
Copy link
Collaborator

Choose a reason for hiding this comment

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

set

import kotlinx.datetime.Clock
import kotlin.random.Random

/**
* Client service to retrieve credentials using
* [OpenID for Verifiable Credential Issuance](https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html).
* Implemented from Draft `openid-4-verifiable-credential-issuance-1_0-11`, 2023-02-03.
*/
class WalletService(
Copy link
Collaborator

Choose a reason for hiding this comment

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

we might want to add an optional clock parameter here

@nodh
Copy link
Contributor Author

nodh commented Apr 29, 2024

I have no idea why the iOS Test Run fails ... why is the test task "skipped", @JesusMcCloud?

@nodh nodh requested a review from JesusMcCloud April 30, 2024 08:08
@nodh nodh merged commit 434cdac into develop Apr 30, 2024
3 checks passed
@nodh nodh deleted the feature/eudi-interop-issuing branch April 30, 2024 08:29
Copy link
Collaborator

@JesusMcCloud JesusMcCloud left a comment

Choose a reason for hiding this comment

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

I know It's not directly related to this PR, but RelyingPartyMetadata still uses Lists. I think we want set semantics there too. Change at your own discretion, as this file remained untouched by this MR.

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