У меня есть файл PKCS # 12, который я рассматривал как файл хранилища ключей, так как он содержит одну ключевую запись и одна запись сертификата.
В Android я вижу людей программным способом установить keystore следующим образом (код из блог разработчиков Android):
byte[] keystore = . . (read from a PKCS#12 keystore)
Intent installIntent = KeyChain.createInstallIntent();
installIntent.putExtra(KeyChain.EXTRA_PKCS12, keystore);
startActivityForResult(installIntent, INSTALL_KEYSTORE_CODE);
Я также вижу, что люди программно устанавливают только сертификат, завернутый внутри хранилища ключей:
Intent intent = KeyChain.createInstallIntent();
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, cert);
startActivity(intent);
Кроме того, я также вижу, что люди устанавливают хранилище ключей и сертификат, завернутый в хранилище ключей. Например, эта статья показывает нам, как сначала установить хранилище ключей, а затем программно установить сертификат, завернутый в хранилище ключей.
Я действительно запутался в том, когда мне нужно установить keystore и когда мне нужно установить сертификат (завернутый в хранилище ключей)? И когда я должен установить оба? Может ли кто-нибудь объяснить мне это?
Например, мой файл PKCS # 12 хранилища ключей (mycert.p12) содержит пару ключей/сертификатов, он используется для подключения к VPN-серверу. Когда мой клиент android установит как хранилище ключей, так и сертификат, завернутый в хранилище ключей? Когда клиент должен установить только сертификат, завернутый в хранилище ключей? Каковы различия? Я совершенно смущен этим.