【发布时间】:2014-02-18 17:25:29
【问题描述】:
WifiEnterpriseConfig setClientKeyEntry 方法采用私钥和证书引用。 我有一个 .p12 证书存储在 Android 证书存储中。 我可以使用 KeyChain API(getCertificateChain、getPrivateKey)来获取私钥和证书引用并将其传递给 setClientKeyEntry 吗? 或者,如果我有一个字符串或字节数组格式的 .p12 证书,那么我是否需要将其存储在证书存储中才能将其用于 Wifi EAP-TLS?
假设: 在 Android 4.3+ 客户端上以编程方式设置 EAP-TLS 需要 setClientKeyEntry 方法。
【问题讨论】:
-
从我的测试中,我观察到当我使用 KeyChain getPrivateKey 方法获取 PrivateKey 引用,然后在 setClientKeyEntry 中使用它时,它会抛出异常 - java.lang.IllegalArgumentException:无法编码私钥。如果 getEncoded 方法为 PrivateKey 对象引用返回 null,则 setClientKeyEntry 方法将引发此异常。不清楚为什么 getEncoded 返回 null。
标签: android android-wifi wifi