Skip to content

Commit 5957539

Browse files
n0900nodh
authored andcommitted
Fix erroneous requirement check (#264)
* Fix erroneous requirement check * Improve error message * Improve error message
1 parent e800628 commit 5957539

File tree

1 file changed

+9
-19
lines changed

1 file changed

+9
-19
lines changed

vck-rqes/src/commonMain/kotlin/at/asitplus/wallet/lib/rqes/RqesOpenId4VpHolder.kt

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,7 @@ import at.asitplus.openid.*
66
import at.asitplus.rqes.CredentialInfo
77
import at.asitplus.rqes.QtspSignatureRequest
88
import at.asitplus.rqes.SignHashRequestParameters
9-
import at.asitplus.rqes.collection_entries.CertificateParameters
10-
import at.asitplus.rqes.collection_entries.DocumentDigest
11-
import at.asitplus.rqes.collection_entries.KeyParameters
12-
import at.asitplus.rqes.collection_entries.DocumentLocation
13-
import at.asitplus.rqes.collection_entries.OAuthDocumentDigest
9+
import at.asitplus.rqes.collection_entries.*
1410
import at.asitplus.rqes.enums.ConformanceLevel
1511
import at.asitplus.rqes.enums.SignatureFormat
1612
import at.asitplus.rqes.enums.SignedEnvelopeProperty
@@ -19,8 +15,6 @@ import at.asitplus.signum.indispensable.X509SignatureAlgorithm
1915
import at.asitplus.signum.indispensable.X509SignatureAlgorithm.entries
2016
import at.asitplus.signum.indispensable.pki.X509Certificate
2117
import at.asitplus.wallet.lib.oauth2.OAuth2Client
22-
import at.asitplus.wallet.lib.oidvci.DefaultMapStore
23-
import at.asitplus.wallet.lib.oidvci.MapStore
2418
import at.asitplus.wallet.lib.rqes.helper.OAuth2RqesParameters
2519
import com.benasher44.uuid.uuid4
2620

@@ -55,7 +49,6 @@ class RqesOpenId4VpHolder(
5549
var signatureProperties = SignatureProperties()
5650
private set
5751

58-
//TODO check if [CryptoProperties] align with signingCredential otw change it
5952
var signingCredential: SigningCredential? = null
6053
private set
6154

@@ -64,25 +57,22 @@ class RqesOpenId4VpHolder(
6457
CREDENTIAL("credential"),
6558
}
6659

67-
/**
68-
* TODO probably match [SignatureProperties] and [CryptoProperties] with [credentialInfo] if they are set
69-
*/
7060
suspend fun setSigningCredential(credentialInfo: CredentialInfo) {
71-
require(credentialInfo.credentialID != null)
72-
require(credentialInfo.certParameters != null)
73-
with(credentialInfo.certParameters!!) {
74-
require(!this.certificates.isNullOrEmpty())
75-
require(this.status == CertificateParameters.CertStatus.VALID)
76-
}
61+
require(credentialInfo.credentialID != null) { "credentialID must not be null (Required by SignHashRequestParameters)" }
62+
63+
credentialInfo.certParameters?.let {
64+
require(!it.certificates.isNullOrEmpty()) { "Signing Certificate chain must not be null or empty" }
65+
it.status?.let { status -> require(status == CertificateParameters.CertStatus.VALID) { "Signing Certificate status must be valid" } }
66+
} ?: throw IllegalArgumentException("Certificate parameters must not be null")
7767

7868
with(credentialInfo.keyParameters) {
79-
require(status == KeyParameters.KeyStatusOptions.ENABLED)
69+
require(status == KeyParameters.KeyStatusOptions.ENABLED) { "Signing key parameters must be enabled" }
8070
}
8171

8272
val signingAlgos =
8373
credentialInfo.keyParameters.algo.mapNotNull { oid -> catching { entries.first { it.oid == oid } }.getOrNull() }
8474

85-
require(signingAlgos.isNotEmpty())
75+
require(signingAlgos.isNotEmpty()) { "Supported signing algorithms must not be null or empty" }
8676

8777
signingCredential = SigningCredential(
8878
credentialId = credentialInfo.credentialID!!,

0 commit comments

Comments
 (0)