From 8c27e43ab07222ab4b6a839c4cdf85afd6394e53 Mon Sep 17 00:00:00 2001 From: Enginex0 Date: Wed, 18 Mar 2026 03:21:34 +0100 Subject: [PATCH] fix(interception): enforce StrongBox op limit for software-generated keys trackAndEnforceOpLimit was only called in the Domain.KEY_ID not-found path, so software-generated keys (found via Domain.APP) bypassed the STRONGBOX_MAX_CONCURRENT_OPS=4 limit entirely. DuckDetector's concurrent signing handles test created 24+ operations that all succeeded via LRU pruning instead of being rejected with TOO_MANY_OPERATIONS (-29). --- .../keystore/shim/KeyMintSecurityLevelInterceptor.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/org/matrix/TEESimulator/interception/keystore/shim/KeyMintSecurityLevelInterceptor.kt b/app/src/main/java/org/matrix/TEESimulator/interception/keystore/shim/KeyMintSecurityLevelInterceptor.kt index bfa2dc6..2d28dcc 100644 --- a/app/src/main/java/org/matrix/TEESimulator/interception/keystore/shim/KeyMintSecurityLevelInterceptor.kt +++ b/app/src/main/java/org/matrix/TEESimulator/interception/keystore/shim/KeyMintSecurityLevelInterceptor.kt @@ -267,6 +267,8 @@ class KeyMintSecurityLevelInterceptor( } } + trackAndEnforceOpLimit(callingUid, txId)?.let { return it } + SystemLogger.info("[TX_ID: $txId] Creating SOFTWARE operation for uid=$callingUid.") val params = data.createTypedArray(KeyParameter.CREATOR)!!