Android Wifi EAP TLS using WifiEnterpriseConfig setClientKeyEntry -


WifiEnterpriseConfig setClientKeyEntry विधि निजी कुंजी & amp; प्रमाणपत्र संदर्भ मेरे पास एंड्रॉइड सर्टिफिकेट स्टोर में संग्रहित एक। P12 प्रमाण पत्र है I क्या मैं निजी कुंजी और प्रमाणपत्र संदर्भ प्राप्त करने और सेट करने के लिए इसे पास करने के लिए KeyChain API (getCertificateChain, getPrivateKey) का उपयोग कर सकता हूँ ClientKeyEntry? वैकल्पिक रूप से, अगर मेरे पास स्ट्रिंग या बाइट एरे प्रारूप में। P12 प्रमाण पत्र है, तो क्या मुझे इसे वाईफ़ाई ईएपी-टीएलएस के लिए उपयोग करने के लिए प्रमाणपत्र स्टोर में संग्रहित करने की आवश्यकता है?

मान्यताओं: setClientKeyEntry विधि प्रोग्रामिंग रूप से एंड्रॉइड 4.3+ क्लाइंट पर ईएपी-टीएलएस सेट करने के लिए आवश्यक है।

इसे आज़माएं:

<पूर्व> वाईफ़ाई कॉन्फ़िगरेशन wc = नया वाईफ़ाई कॉन्फ़िगरेशन (); Wc.SSID = "\" your_ssid \ ""; wc.allowedKeyManagement.set (KeyMgmt.WPA_EAP); wc.allowedKeyManagement.set (KeyMgmt.IEEE8021X); wc.enterpriseConfig.setEapMethod (Eap.TLS); Wc.status = वाईफ़ाई कॉन्फ़िगरेशन। स्थिति। एनएब्लेड; ... मुख्य स्टोअर pkcs12ks = KeyStore.getInstance ("pkcs12"); इन = नए बफ़र इनटस्टस्ट्रीम (नया फ़ाइलइनपुटस्ट्रीम (नया फ़ाइल ("/ पथ / से / आपकी पी 12"))); // वैकल्पिक रूप से आप किसी भी इनपुट स्ट्रीम से पढ़ सकते हैं, उदा। स्ट्रेटिंग pkcs12ks.load से पढ़ने के लिए बाइटअरेइनपुटस्ट्रीम (में, "पास्वर्ड" .टोचरअरे ()); गणन & LT; स्ट्रिंग & gt; Aliases = pkcs12ks.aliases (); जबकि (aliases.hasMoreElements ()) {स्ट्रिंग उपनाम = aliases.nextElement (); लॉग डी। (टैग, "प्रोसेसिंग एल्स" + उपनाम); X509 प्रमाण पत्र प्रमाण = (X50 9 प्रमाणपत्र) pkcs12ks.get प्रमाणपत्र (उपनाम); लॉग डी। (TAG, cert.toString ()); निजीकी कुंजी = (निजीकी) pkcs12ks.getKey (उपनाम, "पासवर्ड" .toचरअरे ()); लॉग डी। (टैग, key.toString ()); Wc.enterpriseConfig.setClientKeyEntry (कुंजी, प्रमाणपत्र); wc.enterpriseConfig.setIdentity ( "वाईफ़ाई -1"); } ... int netID = wifiManager.addNetwork (wc); wifiManager.saveConfiguration (); WifiManager.enableNetwork (नेटआईडी, सच);

उचित अपवाद हैंडलिंग नहीं दिखाया गया है।


Comments