Android 设备 在 API 27 上,我的应用程序是设备所有者。
使用设备策略管理器,有人可以提供安装密钥对功能的示例吗?
public boolean installKeyPair (ComponentName admin,
PrivateKey privKey,
Certificate[] certs,
String alias,
boolean requestAccess)
如何将我的 .pem 文件(从 .p12(获取到私钥和证书对象?
我似乎在网上找不到任何例子...
如果您查看 CertInstallerActivity 的 AOSP 源代码,您将看到一个示例用法:
您需要将文件读取为字符串,然后似乎只需遵循它们的使用模式:
String alias = "alias_as_string";
String key = "pem_as_string";
String cert = "crt_as_string";
// create keySpec from the pem file
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(
Base64.decode(key, Base64.DEFAULT));
// generate the RSP private key from the keySpec
KeyFactory kf = KeyFactory.getInstance("RSA");
PrivateKey privatekey = kf.generatePrivate(keySpec);
// generate the certificate object for the given content
Certificate certificate = CertificateFactory.getInstance("X.509")
.generateCertificate(
new Base64InputStream(new ByteArrayInputStream(cert.getBytes()),
Base64.DEFAULT));
然后对设备策略管理器的实际调用:
dpm.installKeyPair(null, privatekey, certificate, alias);
我从来没有用过这个,只是在阅读AOSP
如果您从 .p12 (PKCS12( 文件开始,您可能还想查看KeyChain.createInstallIntent
(文档(。