Skip to content

Commit b10586f

Browse files
fix issuance CORS issue, fix x5c validator test
1 parent 59d0ec2 commit b10586f

File tree

4 files changed

+25
-5
lines changed
  • waltid-applications/waltid-web-wallet/libs/composables
  • waltid-libraries/protocols/waltid-openid4vc/src/commonMain/kotlin/id/walt/oid4vc
  • waltid-services/waltid-wallet-api/src

4 files changed

+25
-5
lines changed

waltid-applications/waltid-web-wallet/libs/composables/issuance.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export async function useIssuance(query: any) {
4747
issuerHost = issuer;
4848
}
4949

50-
const credential_issuer: { credential_configurations_supported: Array<{ types: Array<String>; }>; } = await $fetch(`${issuer}/.well-known/openid-credential-issuer`)
50+
const credential_issuer: { credential_configurations_supported: Array<{ types: Array<String>; }>; } = await $fetch(`/wallet-api/wallet/${currentWallet.value}/exchange/resolveIssuerOpenIDMetadata?issuer=${issuer}`)
5151
const credentialList = credentialOffer.credential_configuration_ids.map((id) => credential_issuer.credential_configurations_supported[id]);
5252

5353
let credentialTypes: String[] = [];
@@ -122,4 +122,4 @@ export async function useIssuance(query: any) {
122122
groupedCredentialTypes,
123123
issuerHost
124124
}
125-
}
125+
}

waltid-libraries/protocols/waltid-openid4vc/src/commonMain/kotlin/id/walt/oid4vc/OpenID4VCI.kt

+3-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,9 @@ object OpenID4VCI {
131131
appendPathSegments(it.fullPath.trim('/'))
132132
}.buildString() }
133133

134-
suspend fun resolveCIProviderMetadata(credOffer: CredentialOffer) = http.get(getCIProviderMetadataUrl(credOffer)).bodyAsText().let {
134+
suspend fun resolveCIProviderMetadata(credOffer: CredentialOffer) = resolveCIProviderMetadata(credOffer.credentialIssuer)
135+
136+
suspend fun resolveCIProviderMetadata(issuerBaseUrl: String) = http.get(getCIProviderMetadataUrl(issuerBaseUrl)).bodyAsText().let {
135137
OpenIDProviderMetadata.fromJSONString(it)
136138
}
137139

waltid-services/waltid-wallet-api/src/main/kotlin/id/walt/webwallet/web/controllers/exchange/ExchangeController.kt

+18
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package id.walt.webwallet.web.controllers.exchange
22

3+
import id.walt.oid4vc.OpenID4VCI
34
import id.walt.oid4vc.data.CredentialOffer
5+
import id.walt.oid4vc.data.OpenIDProviderMetadata
46
import id.walt.oid4vc.data.dif.PresentationDefinition
57
import id.walt.oid4vc.requests.CredentialOfferRequest
68
import id.walt.sdjwt.SDJWTVCTypeMetadata
@@ -18,6 +20,7 @@ import io.github.smiley4.ktorswaggerui.dsl.routing.post
1820
import io.github.smiley4.ktorswaggerui.dsl.routing.route
1921
import io.ktor.http.*
2022
import io.ktor.server.application.*
23+
import io.ktor.server.plugins.*
2124
import io.ktor.server.request.*
2225
import io.ktor.server.response.*
2326
import io.ktor.util.*
@@ -261,6 +264,21 @@ fun Application.exchange() = walletRoute {
261264
context.respond(HttpStatusCode.BadRequest, error.message ?: "Unknown error")
262265
}
263266
}
267+
get("resolveIssuerOpenIDMetadata", {
268+
summary = "Resolved Issuer OpenID Metadata"
269+
request {
270+
queryParameter<String>("issuer")
271+
}
272+
response {
273+
HttpStatusCode.OK to {
274+
description = "Resolved Issuer OpenID Metadata"
275+
body<OpenIDProviderMetadata>()
276+
}
277+
}
278+
}) {
279+
val issuer = call.request.queryParameters["issuer"] ?: throw BadRequestException("Issuer base url not set")
280+
context.respond(HttpStatusCode.OK, OpenID4VCI.resolveCIProviderMetadata(issuer).toJSON())
281+
}
264282
}
265283
}
266284

waltid-services/waltid-wallet-api/src/test/kotlin/id/walt/webwallet/utils/X5CValidatorTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ import kotlin.test.assertTrue
1414

1515
class X5CValidatorTest {
1616

17-
//we don't care about the bit size of the key, it's a test case (as long as it's bigger than 512)
17+
//we don't care about the bit size of the key, it's a test case (as long as it's bigger than 1024)
1818
private val keyPairGenerator = KeyPairGenerator
1919
.getInstance("RSA").apply {
20-
initialize(1024)
20+
initialize(2048)
2121
}
2222

2323
//x.509 certificate expiration dates

0 commit comments

Comments
 (0)