Contenu du post
🤖 Шаринг ключей из Android Keystore с другими приложениями В Android 16 KeyStoreManager получил возможность поделиться ключами с другими приложениями на устройстве пользователя fun generateAndShareKey(targetUid: Int) { // Генерация нового ключа в Android Keystore val keyGenerator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore") val keyGenSpec = KeyGenParameterSpec.Builder( KEY_ALIAS, KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT ) .setBlockModes(KeyProperties.BLOCK_MODE_GCM) .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE) .build() keyGenerator.init(keyGenSpec) val secretKey: SecretKey = keyGenerator.generateKey() // Предоставление доступа к ключу приложению с заданным UID val keyStoreManager = KeyStoreManager.getInstance() val granted = keyStoreManager.grant(KEY_ALIAS, targetUid) if (granted) { Log.d(TAG, "Доступ предоставлен UID: $targetUid") } else { Log.e(TAG, "Не удалось предоставить доступ UID: $targetUid") } } Пример отзыва доступа к ключу fun revokeKeyAccess(targetUid: Int) { // Отзыв доступа к ключу для приложения с заданным UID val keyStoreManager = KeyStoreManager.getInstance() val revoked = keyStoreManager.revoke(KEY_ALIAS, targetUid) if (revoked) { Log.d(TAG, "Доступ отозван для UID: $targetUid") } else { Log.e(TAG, "Не удалось отозвать доступ для UID: $targetUid") } } #android#android16#безопасность