-
Notifications
You must be signed in to change notification settings - Fork 17
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
Same device presentation flow within app #231
Comments
Dear @Eragoneq , The verifier-endpoint has been implemented as a trusted intermediate between a wallet and a higher-level application (we call it simply verifier in the sequence diagrams found in the readme file). The main idea was/is that the later application doesn't have to implement the whole openid4vp, rather it can delegate this to the verifier endpoint. Some example of such higher-level applications are:
You can find the published VerifierAPI, with many examples, https://verifier-backend.eudiw.dev/swagger-ui#/verifier%20api/initializeTransaction Unfortunately, the verifier-endpoint cannot be used in a form that is embedded to another mobile application, without extended changes. Note though that the verifier endpoint can be used from a mobile application (acting as a "reader' or verifier) running on the same mobile phone that hosts the wallet. Yet, that's also requires the verifier-endpoint deployed to web. |
Hmm, I suppose that the best solution for now would be to use a deployed server, however I also saw some mention of the App Verifier that is being developed: App Verifier for Proximity (Android). |
Dear @Eragoneq The application that you mention is only for mso_mdoc in close proximity using BLE/NFC as defined in ISO-18013-5 (Not openId4vp). For OpenId4VP, especially as defined in HAIP and ISO profiles, you need a web endpoint to interact with the wallet. In the future, there would be support for Digital Credential API, yet until then a web endpoint is required. Keep in mind though the following important distinction: The verifier endpoint (app on this repo) can be used (or driven if you will) by any kind of application (The verifier). It could a web app (server or client side) or even another mobile app. Hope that helps. |
Hi, I have attempted to recreate the whole setup locally, however I found a few issues along the way, which I'm not sure if they are documented properly or I may have done something wrong when applying the configuration.
I might have missed some step in the configuration, but it seems that there are some missing steps to get the basic demo working. |
Hi @Eragoneq, Which version/tag of the Verifier Endpoint are you using? Please use Verifier Endpoint Thanks. |
I used the docker image for latest, which from what I've seen points to Modified withClientIdSchemes(
listOf(ClientIdScheme.X509SanDns, ClientIdScheme.Preregistered(listOf(
PreregisteredVerifier("EudiTest", "EudiTest", "https://192.168.178.172")
)))
) Environment config for verifier: environment:
VERIFIER_PUBLICURL: "https://192.168.178.172"
VERIFIER_RESPONSE_MODE: "DirectPostJwt"
VERIFIER_ORIGINALCLIENTID: "EudiTest"
VERIFIER_CLIENTIDSCHEME: "pre-registered" Android app debug log
|
The deployment option For this reason, in your installation the You can see this if you decode the contents of the JAR (From the android log) which is actually a JWT {
"response_uri": "https://192.168.178.172/wallet/direct_post",
"client_id_scheme": "pre-registered",
"response_type": "vp_token",
"nonce": "bdc4fcd6-133d-48ad-bddf-4c055b2653cf",
"client_id": "Verifier",
....
} You can either use the env |
You're right, I didn't see that the README had any fresh changes, after changing it property it passed through the One question I'd still leave is that, why the app does not accept
|
Dear @Eragoneq You can also skip pre-registered scheme by using |
@Eragoneq The idea is that wallet may interact with an (arbitrary) verifier, provided that the verifier satisfies the wallet's acceptable conditions. @dzarras |
For now it works fine with the pre-registered and custom app, but thank you for the information. I still seem to have a problem remaining with the custom key, as I receive the error:
This is what the {
"keys": [
{
"kty": "EC",
"x5t#S256": "AKov_84oPd8VMCjDK_LQwMo6ezH-iDX3uDdK8i9o714",
"nbf": 1737488049,
"crv": "P-256",
"kid": "mykey",
"x5c": [
"MIIB8TCCAZagAwIBAgIJAOyFm30icfQUMAoGCCqGSM49BAMCMGwxEDAOBgNVBAYTB1Vua25vd24xEDAOBgNVBAgTB1Vua25vd24xEDAOBgNVBAcTB1Vua25vd24xEDAOBgNVBAoTB1Vua25vd24xEDAOBgNVBAsTB1Vua25vd24xEDAOBgNVBAMTB1Vua25vd24wHhcNMjUwMTIxMTkzNDA5WhcNMjYwMTIxMTkzNDA5WjBsMRAwDgYDVQQGEwdVbmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYDVQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRAwDgYDVQQDEwdVbmtub3duMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyB7M/pRyuG6d0EyW70c4viOkX1xVU/pIFhC1rhJ9cslSBVZiOSdZAseqO3JxPLOgPwlGaGJZpvoYwQskwTCmnKMhMB8wHQYDVR0OBBYEFMxm6GP17QeU/U0OIKIgRyABrhrYMAoGCCqGSM49BAMCA0kAMEYCIQDoV3xV4542ka1q+vrOmyiLgP+1WTxMl1/xtTSazos5pwIhAPVhxIUka+T7iNrheU3ao8iBgPpBXi3Ag8px0zjkuDPN"
],
"x": "yB7M_pRyuG6d0EyW70c4viOkX1xVU_pIFhC1rhJ9csk",
"y": "UgVWYjknWQLHqjtycTyzoD8JRmhiWab6GMELJMEwppw",
"exp": 1769024049
}
]
} |
@Eragoneq Could you please provide the debug output of the Android app where the JAR is printed, so that we can further debug the issue? Concerning your questions:
You can find the implementation details here. |
There's not much more listed there, as it just fails when fetching the keys from the Verifier. Log
|
The verifier produces a JWT Secured authorization request which is signed correctly. Unfortunately, though, there is a hard-coded value for the alg to the wallet (here). @vkanellopoulos : Can you please create an issue for this? |
Hello everyone,
I was testing the verifier server and looking over the functionality to verify certain credentials of the user, however I would like to try, integrate and test it within another app to allow app-2-app verification. Are there possibly other repos or a way to integrate same functionality without the whole webserver?
Thank you in advance!
The text was updated successfully, but these errors were encountered: