@@ -27,7 +27,6 @@ import com.infomaniak.auth.lib.extensions.toNSData
2727import com.infomaniak.auth.lib.extensions.toNsData
2828import com.infomaniak.auth.lib.extensions.tryIt
2929import com.infomaniak.auth.lib.extensions.use
30- import com.infomaniak.auth.lib.internal.KeyPairManager.Companion.ALIAS
3130import kotlinx.cinterop.ExperimentalForeignApi
3231import kotlinx.cinterop.MemScope
3332import kotlinx.cinterop.alloc
@@ -80,7 +79,7 @@ internal actual class KeyPairManagerImpl : KeyPairManager {
8079 ): Xor <ByteArray , Failure .KeyManagement .KeyExtractionFailed > = Dispatchers .IO {
8180 memScoped {
8281 // Get private key to retrieve public key
83- getPrivateKeyRef().use { privateKeyRef ->
82+ getPrivateKeyRef(" $userId - $keyId " ).use { privateKeyRef ->
8483 SecKeyCopyPublicKey (privateKeyRef) ? : throw Exception (" Failed to extract public key from private key" )
8584 }.use { publicKeyRef ->
8685
@@ -101,7 +100,7 @@ internal actual class KeyPairManagerImpl : KeyPairManager {
101100 keyId : String
102101 ): Xor <ByteArray , Failure .KeyManagement .KeyExtractionFailed > {
103102 memScoped {
104- getPrivateKeyRef().use { privateKeyRef ->
103+ getPrivateKeyRef(" $userId - $keyId " ).use { privateKeyRef ->
105104 val result = tryIt { errorPointer ->
106105 SecKeyCopyExternalRepresentation (privateKeyRef, errorPointer)
107106 }
@@ -115,12 +114,12 @@ internal actual class KeyPairManagerImpl : KeyPairManager {
115114 }
116115
117116 @OptIn(ExperimentalForeignApi ::class )
118- private fun MemScope.getPrivateKeyRef (): SecKeyRef {
117+ private fun MemScope.getPrivateKeyRef (keyAlias : String ): SecKeyRef {
119118 val query = buildCFDictionary {
120119 this [kSecAttrKeyType] = kSecAttrKeyTypeECSECPrimeRandom
121120 this [kSecAttrKeyClass] = kSecAttrKeyClassPrivate
122121 this [kSecClass] = kSecClassKey
123- this [kSecAttrApplicationTag] = ALIAS .toNsData()
122+ this [kSecAttrApplicationTag] = keyAlias .toNsData()
124123 this [kSecReturnRef] = true
125124 }
126125
0 commit comments