2012-10-18 17 views
5

मैं एक स्व-हस्ताक्षरित प्रमाणपत्र स्थापित करने के लिए कीचेन इरादा लॉन्च कर रहा हूं जो कि मुझे X509 प्रमाणपत्र ऑब्जेक्ट (X509TrustManager द्वारा, चेकसेवर ट्रस्टेड विधि द्वारा) के रूप में स्मृति पर है। इस कोड के साथ:स्व-हस्ताक्षरित प्रमाणपत्र प्रोग्रामेटिक रूप से

Intent intent = KeyChain.createInstallIntent(); 
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, certs[0].getEncoded()); 
intent.putExtra(KeyChain.EXTRA_NAME, "certificate"); 
context.startActivityForResult(intent, 0); 

नई गतिविधि शुरू की है और मैं संदेश "प्रमाणपत्र स्थापित किया गया है" प्राप्त कर सकते हैं, लेकिन मैं इसे सुरक्षा प्रमाण पत्र सूची के माध्यम से नहीं मिल रहा है, और जब कि होस्ट से कनेक्ट करने की कोशिश कर, यह लगता है कि स्थापित नहीं किया जा रहा है।

इसे हल करने के बारे में कोई विचार?

+0

क्या आप इसके लिए उत्तर खोज रहे थे? –

उत्तर

1

सुरक्षा प्रमाणपत्र सूची स्क्रीन जो आप उल्लेख करते हैं केवल उस विश्वसनीय CA प्रमाण पत्र की एक सूची है जिसे आपने एंड्रॉइड डिवाइस में जोड़ा है। (नोट: प्रमाण पत्र की सिस्टम सूची विश्वसनीय निर्माता सीए की सूची है जो डिवाइस निर्माता सेट है)। कोई स्क्रीन नहीं है (कम से कम एक गैर-रूट फोन पर) जो आपको कीचेन के प्रमाण पत्र दिखाती है।

किसी ऐप को प्रमाण पत्र/कुंजी तक पहुंचने के लिए, इसे ओएस से अनुमति के लिए पूछना होगा। ऐसा करने के लिए, KeyChain क्लास में selectPrivateKeyAlias ​​नामक एक विधि है, जो उपयोगकर्ता को यह चुनने के लिए एक गतिविधि दिखाती है कि ऐप किस एक्सेस तक पहुंच सकता है। इस गतिविधि को उपर्युक्त विधि का उपयोग करके इंस्टॉल किए गए किसी भी आयातित प्रमाणपत्र को सूचीबद्ध करना चाहिए।

अधिक जानकारी के लिए नीचे दिए गए लिंक को देखें।

Unifying Key Store Access in ICS

संबंधित मुद्दे