diff --git a/app/src/main/java/org/matrix/TEESimulator/interception/keystore/Keystore2Interceptor.kt b/app/src/main/java/org/matrix/TEESimulator/interception/keystore/Keystore2Interceptor.kt index 8d25fb3..09056c2 100644 --- a/app/src/main/java/org/matrix/TEESimulator/interception/keystore/Keystore2Interceptor.kt +++ b/app/src/main/java/org/matrix/TEESimulator/interception/keystore/Keystore2Interceptor.kt @@ -172,15 +172,15 @@ object Keystore2Interceptor : AbstractKeystoreInterceptor() { return TransactionResult.ContinueAndSkipPost } - if (keyId in deletedSoftwareKeys) { - SystemLogger.info("[TX_ID: $txId] Returning KEY_NOT_FOUND for deleted key ${descriptor.alias}") - return InterceptorUtils.createErrorReply(RESPONSE_KEY_NOT_FOUND) + val response = KeyMintSecurityLevelInterceptor.getGeneratedKeyResponse(keyId) + if (response == null) { + if (deletedSoftwareKeys.remove(keyId)) { + SystemLogger.info("[TX_ID: $txId] Returning KEY_NOT_FOUND for deleted key ${descriptor.alias}") + return InterceptorUtils.createErrorReply(RESPONSE_KEY_NOT_FOUND) + } + return TransactionResult.Continue } - val response = - KeyMintSecurityLevelInterceptor.getGeneratedKeyResponse(keyId) - ?: return TransactionResult.Continue - if (KeyMintSecurityLevelInterceptor.isAttestationKey(keyId)) SystemLogger.info("${descriptor.alias} was an attestation key")