+++ /dev/null
-package com.example.furt.myapplication;
-
-
-import android.content.res.Resources;
-import android.os.AsyncTask;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.net.Socket;
-import java.security.KeyManagementException;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateException;
-import java.security.cert.CertificateFactory;
-import java.security.cert.X509Certificate;
-import java.util.concurrent.ExecutionException;
-
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLSocketFactory;
-import javax.net.ssl.TrustManagerFactory;
-
-public class serverComunication
-{
-
- serverComunication(){}
-
- public static String connessione(String parametri)
- {
- try {
- return new richiestaServer().execute(parametri).get();
- } catch (InterruptedException e) {
- e.printStackTrace();
- } catch (ExecutionException e) {
- e.printStackTrace();
- }
- return null;
- }
-
- static String connessioneMain(String parametri)
- {
- try {
- return new richiestaServerMain().execute(parametri).get();
- } catch (InterruptedException e) {
- e.printStackTrace();
- } catch (ExecutionException e) {
- e.printStackTrace();
- }
- return null;
- }
-
- static class richiestaServer extends AsyncTask<String, String, String> {
- @Override
- protected String doInBackground(String... params)
- {
- Resources risorse= aggiornamento.t.getResources();
- try {
-// (could be from a resource or ByteArrayInputStream or ...)
- CertificateFactory cf = CertificateFactory.getInstance("X.509");
-// From https://www.washington.edu/itconnect/security/ca/load-der.crt
- InputStream caInput = risorse.openRawResource(R.raw.halloween);
- Certificate ca;
- try {
- ca = cf.generateCertificate(caInput);
- System.out.println("ca=" + ((X509Certificate) ca).getSubjectDN());
- } finally {
- caInput.close();
- }
-
-// Create a KeyStore containing our trusted CAs
- String keyStoreType = KeyStore.getDefaultType();
- KeyStore keyStore = KeyStore.getInstance(keyStoreType);
- keyStore.load(null, null);
- keyStore.setCertificateEntry("ca", ca);
-
-// Create a TrustManager that trusts the CAs in our KeyStore
- String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
- TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
- tmf.init(keyStore);
-
-// Create an SSLContext that uses our TrustManager
- SSLContext context = SSLContext.getInstance("TLS");
- context.init(null, tmf.getTrustManagers(), null);
-
- Socket socket;
- SSLSocketFactory sf=context.getSocketFactory();
- socket=sf.createSocket(global.hostName,global.port);
- OutputStream os = socket.getOutputStream();
- OutputStreamWriter osw = new OutputStreamWriter(os);
- BufferedWriter bw = new BufferedWriter(osw);
- bw.write(params[0]+"\n");
- bw.flush();
- BufferedReader r = new BufferedReader(new InputStreamReader(socket.getInputStream()));
- String returnValue=r.readLine();
- socket.close();
- return returnValue;
- } catch (KeyStoreException g) {
- g.printStackTrace();
- } catch (CertificateException a) {
- a.printStackTrace();
- } catch (NoSuchAlgorithmException b) {
- b.printStackTrace();
- } catch (IOException c) {
- c.printStackTrace();
- } catch (KeyManagementException f) {
- f.printStackTrace();
- }
- return "error";
- }
- }
-
- public static class richiestaServerMain extends AsyncTask<String, String, String> {
- @Override
- protected String doInBackground(String... params)
- {
- Resources risorse= mainActivity.t.getResources();
- try {
-// (could be from a resource or ByteArrayInputStream or ...)
- CertificateFactory cf = CertificateFactory.getInstance("X.509");
-// From https://www.washington.edu/itconnect/security/ca/load-der.crt
- InputStream caInput = risorse.openRawResource(R.raw.halloween);
- Certificate ca;
- try {
- ca = cf.generateCertificate(caInput);
- System.out.println("ca=" + ((X509Certificate) ca).getSubjectDN());
- } finally {
- caInput.close();
- }
-
-// Create a KeyStore containing our trusted CAs
- String keyStoreType = KeyStore.getDefaultType();
- KeyStore keyStore = KeyStore.getInstance(keyStoreType);
- keyStore.load(null, null);
- keyStore.setCertificateEntry("ca", ca);
-
-// Create a TrustManager that trusts the CAs in our KeyStore
- String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
- TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
- tmf.init(keyStore);
-
-// Create an SSLContext that uses our TrustManager
- SSLContext context = SSLContext.getInstance("TLS");
- context.init(null, tmf.getTrustManagers(), null);
-
- Socket socket;
- SSLSocketFactory sf=context.getSocketFactory();
- socket=sf.createSocket(global.hostName,global.port);
- OutputStream os = socket.getOutputStream();
- OutputStreamWriter osw = new OutputStreamWriter(os);
- BufferedWriter bw = new BufferedWriter(osw);
- bw.write(params[0]+"\n");
- bw.flush();
- BufferedReader r = new BufferedReader(new InputStreamReader(socket.getInputStream()));
- String returnValue=r.readLine();
- socket.close();
- return returnValue;
- } catch (KeyStoreException g) {
- g.printStackTrace();
- } catch (CertificateException a) {
- a.printStackTrace();
- } catch (NoSuchAlgorithmException b) {
- b.printStackTrace();
- } catch (IOException c) {
- c.printStackTrace();
- } catch (KeyManagementException f) {
- f.printStackTrace();
- }
- return "error";
- }
- }
-}