我需要android 9中支持secure element和strongbox的android手机列表。我在哪里或者怎样才能找到?
我在三星galaxy s9和avd google pixl xl api 28上尝试了下面的代码
KeyPairGenerator kpg = null;
kpg = KeyPairGenerator.getInstance(
KeyProperties.KEY_ALGORITHM_RSA, "AndroidKeyStore");
kpg.initialize(new KeyGenParameterSpec.Builder("keystore1", KeyProperties.PURPOSE_SIGN)
.setCertificateSerialNumber(BigInteger.valueOf(1L))
.setCertificateSubject(new X500Principal("CN=MyCompany"))
.setIsStrongBoxBacked(true) /* Enable StrongBox */
.setInvalidatedByBiometricEnrollment(true)
.build());
KeyPair kp = kpg.generateKeyPair();
KeyFactory factory = KeyFactory.getInstance(KeyProperties.KEY_ALGORITHM_EC, "AndroidKeyStore");
KeyInfo keyInfo = factory.getKeySpec(kp.getPrivate(), KeyInfo.class);
keyInfo.isInsideSecureHardware();
它引发以下异常:
android.security.keystore.StrongboxUnavailableException:未能生成密钥对
最佳答案
目前很少有设备支持StrongBox,不幸的是,你能在网上找到的信息充其量是很少的。
虽然您是对的,但是运行Android9.0的设备应该支持StrongBox,StrongBox是一个独立的硬件组件,我假设只有使用Android9.0的设备才有机会拥有硬件。
有一个according to Android存储库,它收集有关多个设备的安全信息。
看一看,只有谷歌的Pixel3设备支持StrongBox。您可以在文件夹中看到StrongBox认证证书。