Как установить цепочку сертификатов на устройстве Android - PullRequest
0 голосов
/ 07 июня 2018

Android-устройство на API 27, мое приложение - Владелец устройства .

Используя DevicePolicyManager , кто-нибудь может привести пример installKeyPair function?

public boolean installKeyPair (ComponentName admin, 
            PrivateKey privKey, 
            Certificate[] certs, 
            String alias, 
            boolean requestAccess)

Как получить мои файлы .pem (из .p12) в PrivateKey, а также в объект сертификата?

Не могу найти ни одногопримеры онлайн ...

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Если вы начинаете с файла .p12 (PKCS12), вам также может понадобиться просмотреть KeyChain.createInstallIntent ( документация ).

0 голосов
/ 16 июля 2018

Если вы посмотрите на источник AOSP для CertInstallerActivity , вы увидите пример использования:

Вам нужно будет прочитать файлы как строки, тогда кажется, что вы просто будете следовать ихшаблон использования:

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));

Затем фактический вызов DevicePolicyManager:

dpm.installKeyPair(null, privatekey, certificate,  alias);

Я никогда не использовал это, просто читаю AOSP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...