Example usage for android.net.wifi WifiEnterpriseConfig setClientKeyEntry

List of usage examples for android.net.wifi WifiEnterpriseConfig setClientKeyEntry

Introduction

In this page you can find the example usage for android.net.wifi WifiEnterpriseConfig setClientKeyEntry.

Prototype

public void setClientKeyEntry(PrivateKey privateKey, X509Certificate clientCertificate) 

Source Link

Document

Specify a private key and client certificate for client authorization.

Usage

From source file:nl.nikhef.eduroam.WiFiEduroam.java

@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
private void applyAndroid43EnterpriseSettings(WifiConfiguration currentConfig,
        HashMap<String, String> configMap) {
    try {//  w  ww  .  j  av a  2  s . c  o m
        CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
        InputStream in = new ByteArrayInputStream(
                Base64.decode(certificate.replaceAll("-----(BEGIN|END) CERTIFICATE-----", "")));
        X509Certificate cert = (X509Certificate) certFactory.generateCertificate(in);
        in = new ByteArrayInputStream(Base64.decode(ca.replaceAll("-----(BEGIN|END) CERTIFICATE-----", "")));
        X509Certificate caCert = (X509Certificate) certFactory.generateCertificate(in);

        WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
        enterpriseConfig.setPhase2Method(Phase2.NONE);
        enterpriseConfig.setAnonymousIdentity(configMap.get(INT_ANONYMOUS_IDENTITY));
        enterpriseConfig.setEapMethod(Eap.TLS);

        enterpriseConfig.setCaCertificate(caCert);
        enterpriseConfig.setClientKeyEntry(this.csr.getPrivate(), cert);
        enterpriseConfig.setIdentity(configMap.get(INT_ANONYMOUS_IDENTITY));
        enterpriseConfig.setSubjectMatch(configMap.get(INT_SUBJECT_MATCH));
        currentConfig.enterpriseConfig = enterpriseConfig;

    } catch (Exception e) {
        e.printStackTrace();
    }
}