Skip to content

Commit d1deaf1

Browse files
committed
Parse (but not valdate) a signed request
1 parent 768ec4f commit d1deaf1

File tree

1 file changed

+8
-1
lines changed
  • app/src/main/java/com/credman/cmwallet/openid4vp

1 file changed

+8
-1
lines changed

app/src/main/java/com/credman/cmwallet/openid4vp/OpenId4VP.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.credman.cmwallet.openid4vp
33
import android.util.Base64
44
import com.credman.cmwallet.cbor.cborEncode
55
import com.credman.cmwallet.data.model.CredentialItem
6+
import com.credman.cmwallet.decodeBase64UrlNoPadding
67
import com.credman.cmwallet.jweSerialization
78
import org.json.JSONObject
89
import java.security.MessageDigest
@@ -14,7 +15,7 @@ data class TransactionData(
1415
val data: JSONObject
1516
)
1617

17-
class OpenId4VP(val requestJson: JSONObject, val clientId: String) {
18+
class OpenId4VP(var requestJson: JSONObject, val clientId: String) {
1819

1920
val nonce: String
2021

@@ -25,6 +26,12 @@ class OpenId4VP(val requestJson: JSONObject, val clientId: String) {
2526
val responseMode: String?
2627

2728
init {
29+
// If the request is signed
30+
if (requestJson.has("request")) {
31+
val signedRequest = requestJson.getString("request")
32+
requestJson = JSONObject(String(signedRequest.split(".")[1].decodeBase64UrlNoPadding()))
33+
}
34+
2835
// Parse required params
2936
require(requestJson.has("nonce")) { "Authorization Request must contain a nonce" }
3037
require(requestJson.has("dcql_query")) { "Authorization Request must contain a dcql_query" }

0 commit comments

Comments
 (0)