2016-07-28 50 views
0

自己署名付きルートCAを使用してクライアント証明書を作成しました。clientcert.p12ファイルをAndroidデバイスにインストールしました。android証明書ストアからクライアント証明書を取得する方法

私のアプリでは、次のコードを試してみました。

KeyStore store = KeyStore.getInstance("PKCS12"); 
      if (store != null) 
      { 

       store.load(null, new String("the keystore password").toCharArray()); 
       Log.i("BIRAJENDU", "CERT CHECK" + "Type: "+ store.getType()+ " Size: " +store.size()); 

       Enumeration<String> aliases = store.aliases(); 
       if (!aliases.hasMoreElements()) { 
         Log.i("BIRAJENDU", "No cert found"); 
       } 

}

私は常にゼロとしてstore.size()を取得しています。

しかし、KeyStore store = KeyStore.getInstance("AndroidCAStore");を使用すると、適切な店舗サイズが取得されています。しかしここに私の必要性は見つけることですPKCS12ストア。

答えて

0

Android KeyChain(https://developer.android.com/reference/android/security/KeyChain.html)を使用する必要があります。

+0

はいこの情報は秘密鍵を見つけるのに便利でした。しかし、私の要件は、上記のKeyChainのアプローチでは、私はchoosePrivateKeyAlias()を呼び出す必要がありますユーザーの介入で、すべてのPKCS証明書チェーンにアクセスしていません。これは、証明書選択システムダイアログを開くことです。私のユースケースではこれを許可していません。 – Birajendu

+0

その場合、証明書をアプリケーションにインポートする必要があります。そうでない場合は、デバイスを証明書をデバイスにインポートしたデバイス所有者またはプロファイル所有者のコンポーネントにする必要があります。 –

+0

私のアプリはMDMアプリではないので、私はそれをデバイスの所有者またはプロフィールの所有者のアプリにすることはできないと思います。 – Birajendu

関連する問題