|
1 | 1 | package eu.europa.ec.eudi.wallet.transfer.openid4vp.responseGenerator
|
2 | 2 |
|
| 3 | +import android.os.Build |
| 4 | +import android.security.keystore.KeyProperties |
3 | 5 | import com.nimbusds.jose.JWSAlgorithm
|
4 | 6 | import com.nimbusds.jose.JWSHeader
|
5 | 7 | import com.nimbusds.jose.crypto.ECDSASigner
|
@@ -32,6 +34,7 @@ import eu.europa.ec.eudi.sdjwt.serializeWithKeyBinding
|
32 | 34 | import eu.europa.ec.eudi.wallet.internal.Openid4VpX509CertificateTrust
|
33 | 35 | import eu.europa.ec.eudi.wallet.issue.openid4vci.DocumentManagerSdJwt
|
34 | 36 | import eu.europa.ec.eudi.wallet.keystore.DEV_KEY_ALIAS
|
| 37 | +import eu.europa.ec.eudi.wallet.keystore.KeyGenerator |
35 | 38 | import eu.europa.ec.eudi.wallet.keystore.KeyGeneratorImpl
|
36 | 39 | import eu.europa.ec.eudi.wallet.transfer.openid4vp.OpenId4VpSdJwtRequest
|
37 | 40 | import kotlinx.coroutines.runBlocking
|
@@ -61,7 +64,17 @@ class OpenId4VpSdJwtResponseGeneratorImpl(
|
61 | 64 |
|
62 | 65 | val presentationSdJwt = sdJwt.present(jsonPointer)
|
63 | 66 |
|
64 |
| - val ecKey = ECKey.load(KeyGeneratorImpl.getKeyStore(), DEV_KEY_ALIAS, null) |
| 67 | +// val ecKey = ECKey.load(KeyGeneratorImpl.getKeyStore(), DEV_KEY_ALIAS, null) |
| 68 | + |
| 69 | + val key= if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { |
| 70 | + KeyGeneratorImpl.getSigningKey(KeyGenerator.SigningKeyConfig(KeyProperties.AUTH_DEVICE_CREDENTIAL,60)) |
| 71 | + } else { |
| 72 | + throw Exception() |
| 73 | + } |
| 74 | + val pemString = "-----BEGIN CERTIFICATE-----\n" + |
| 75 | + "${key.privateKey}\n" + |
| 76 | + "-----END CERTIFICATE-----" |
| 77 | + val ecKey = ECKey.parse(pemString) |
65 | 78 |
|
66 | 79 | val signer = ECDSASigner(ecKey)
|
67 | 80 |
|
@@ -160,13 +173,13 @@ class OpenId4VpSdJwtResponseGeneratorImpl(
|
160 | 173 | val keyString = headerJson.getJSONArray("x5c").getString(0).replace("\n", "")
|
161 | 174 | println(keyString)
|
162 | 175 |
|
163 |
| - val key2 = "-----BEGIN CERTIFICATE-----\n" + |
| 176 | + val pemString = "-----BEGIN CERTIFICATE-----\n" + |
164 | 177 | "${keyString}\n" +
|
165 | 178 | "-----END CERTIFICATE-----"
|
166 | 179 |
|
167 | 180 | val certificateFactory: CertificateFactory = CertificateFactory.getInstance("X.509")
|
168 | 181 | val certificate =
|
169 |
| - certificateFactory.generateCertificate(ByteArrayInputStream(key2.toByteArray())) as X509Certificate |
| 182 | + certificateFactory.generateCertificate(ByteArrayInputStream(pemString.toByteArray())) as X509Certificate |
170 | 183 |
|
171 | 184 | val ecKey = ECKey.parse(certificate)
|
172 | 185 | val jwtSignatureVerifier = ECDSAVerifier(ecKey).asJwtVerifier()
|
|
0 commit comments