Skip to content

Conversation

@Magnus-Kuhn
Copy link
Contributor

@Magnus-Kuhn Magnus-Kuhn commented Dec 5, 2025

Readiness checklist

  • I added/updated tests.
  • I ensured that the PR title is good enough for the changelog.
  • I labeled the PR.
  • I self-reviewed the PR.

Description

There are scenarios where a presentation should be created without being prompted by a verifier. This adds a configuration for creating a default presentation to the attribute.

@Magnus-Kuhn Magnus-Kuhn added wip Work in Progress (blocks mergify from auto update the branch) enhancement New feature or request labels Dec 5, 2025
@Magnus-Kuhn Magnus-Kuhn changed the title Default presentation Default presentation of credentials Dec 8, 2025
@Magnus-Kuhn Magnus-Kuhn removed the wip Work in Progress (blocks mergify from auto update the branch) label Dec 8, 2025
@Magnus-Kuhn Magnus-Kuhn marked this pull request as ready for review December 8, 2025 10:15
Comment on lines +214 to +221
presentationFrame: credential.defaultPresentationConfig.presentationFrame,
verifierMetadata: credential.defaultPresentationConfig.keyBinding
? {
audience: "defaultPresentationAudience",
issuedAt: Date.now() / 1000,
nonce: "defaultPresentationNonce"
}
: undefined
Copy link
Contributor

Choose a reason for hiding this comment

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

do we really need to save those settings in the attribute? Or is is possible to pass them in the UseCase? IMO the used type in the credo lib heavily blows up the generated types - and I don't really see how we set this from e.g. the app.

Additionally: audience and nonce should not default to nonsense values, instead this should also be passed to this method.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The end goal is that the holder shows a QR code with the presentation that is not prompted like in the OID4VP flow, which allows offline presentation and is more in line with showing a digital ticket. So the configuration has to be stored somewhere and the attribute is the simple choice.
audience and nonce should under normal circumstances be set by the verifier, but in this scenario that's not possible and I don't want to put the effort in to build something without them. So while it would be possible to move them to the use case, I don't see them changed to other values.
If the generated types are problematic, I have no problem with simplifying them - it's easy enough to explain what is correct there without the type

@fatschi @tnotheis Do you agree with this plan?

Copy link
Contributor

Choose a reason for hiding this comment

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

I still not understand WHO stores that information. Also, how is the verifier transfer the information to the app, when the app is just doing a button press.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There is no information transfer from the verifier, an example scenario is that you display a QR code with the Heidelbergpass, it is scanned at e. g. the zoo without any further prompting from the verifier. So the holder has to store the information and should get it from the issuer during the issuance, although we haven't decided yet how this happens

Copy link
Contributor

Choose a reason for hiding this comment

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

Aren't those changes useless until this decision was done? Also, we could do those changes with a hardcoded config for now and then implement the config storage when we determined who stores what where ;)

Copy link
Member

Choose a reason for hiding this comment

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

Would it make sense to have a short Teams call where we discuss this?

Copy link
Contributor

Choose a reason for hiding this comment

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

I think we should, yeah.

@Magnus-Kuhn Magnus-Kuhn added the wip Work in Progress (blocks mergify from auto update the branch) label Dec 10, 2025
@Magnus-Kuhn Magnus-Kuhn marked this pull request as draft December 10, 2025 08:57
@Magnus-Kuhn
Copy link
Contributor Author

Putting this on hold because alternative approaches to presenting outside of OID4VP are being discussed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request wip Work in Progress (blocks mergify from auto update the branch)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants