Skip to content

Commit 19deae7

Browse files
committed
docs(openid4vci): clarify optional proof nonce
1 parent 62ede25 commit 19deae7

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

  • waltid-libraries/protocols/waltid-openid4vci-wallet

waltid-libraries/protocols/waltid-openid4vci-wallet/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ import id.waltid.openid4vci.wallet.*
8585
import id.waltid.openid4vci.wallet.oauth.ClientConfiguration
8686
import id.waltid.openid4vci.wallet.offer.*
8787
import id.waltid.openid4vci.wallet.metadata.*
88+
import id.waltid.openid4vci.wallet.nonce.NonceRequestBuilder
8889
import id.waltid.openid4vci.wallet.token.*
8990
import id.waltid.openid4vci.wallet.proof.*
9091
import io.ktor.client.*
@@ -126,19 +127,18 @@ if (preAuthGrant != null) {
126127
txCode = null // or user-provided PIN
127128
)
128129

129-
// 7. Obtain a fresh proof nonce from the issuer-advertised Nonce Endpoint
130-
val nonceEndpoint = requireNotNull(issuerMetadata.nonceEndpoint) {
131-
"A nonce_endpoint is required when the credential configuration requires proof"
130+
// 7. Obtain a fresh proof nonce when the issuer advertises a Nonce Endpoint
131+
val nonce = issuerMetadata.nonceEndpoint?.let { nonceEndpoint ->
132+
NonceRequestBuilder(httpClient).requestNonce(nonceEndpoint).cNonce
132133
}
133-
val nonce = NonceRequestBuilder(httpClient).requestNonce(nonceEndpoint)
134134

135-
// 8. Generate proof of possession
135+
// 8. Generate proof of possession, omitting the nonce claim when none was obtained
136136
val key = KeyManager.loadKey("my-key-id")
137137
val proofBuilder = JwtProofBuilder()
138138
val proof = proofBuilder.buildProof(
139139
key = key,
140140
audience = offer.credentialIssuer,
141-
nonce = nonce.cNonce
141+
nonce = nonce
142142
)
143143

144144
// 9. Request credential (Implementation coming soon)

0 commit comments

Comments
 (0)