2012-02-21 7 views
0

私はこのリストを取得するために、以下のコードを使用しています。これはうまくいくようですが、.bksファイルが常にハードコーディングされた場所で利用可能であることを示すドキュメントが見つからないため、特に安全でスマートに見えません。Android:信頼できるCAのリストを取得するための安全な方法

この方法は妥当かどうか、これについてはより安全で賢明な方法がありますか?

String filename = "/system/etc/security/cacerts.bks"; 

FileInputStream is = new FileInputStream(filename); 
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType()); 
String password = "changeit"; 
keystore.load(is, password.toCharArray()); 

PKIXParameters params = new PKIXParameters(keystore); 

Iterator it = params.getTrustAnchors().iterator(); 
//iterate and such 

答えて

0

は、Googleグループの答えが見つかりました:

TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); 
tmf.init((KeyStore) null); 
X509TrustManager xtm = (X509TrustManager) tmf.getTrustManagers()[0]; 
for (X509Certificate cert : xtm.getAcceptedIssuers()) { 
    String certStr = "S:" + cert.getSubjectDN().getName() + "\nI:" 
         + cert.getIssuerDN().getName(); 
    Log.d(TAG, certStr); 
} 
関連する問題