From cefc5e7c75b820ee0445c552d05cbc39e9b837a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Cardoso?= Date: Wed, 17 Nov 2021 16:32:27 -0300 Subject: [PATCH 1/3] =?UTF-8?q?Adicionando=20seguran=C3=A7a?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/gradle.xml | 1 + .idea/runConfigurations.xml | 10 --- .../lsdi/cddlbaseproject/MainActivity.java | 87 ++++++++++++++++++- 3 files changed, 86 insertions(+), 12 deletions(-) delete mode 100644 .idea/runConfigurations.xml diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 5cd135a..9bba60d 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -14,6 +14,7 @@ diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 797acea..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/java/br/ufma/lsdi/cddlbaseproject/MainActivity.java b/app/src/main/java/br/ufma/lsdi/cddlbaseproject/MainActivity.java index 21fc8ad..1cf6938 100644 --- a/app/src/main/java/br/ufma/lsdi/cddlbaseproject/MainActivity.java +++ b/app/src/main/java/br/ufma/lsdi/cddlbaseproject/MainActivity.java @@ -24,6 +24,7 @@ public class MainActivity extends AppCompatActivity { private String host; private CDDL cddl; private ConnectionImpl connection; + private String CLIENT_ID = "app"; @Override protected void onCreate(Bundle savedInstanceState) { @@ -87,7 +88,7 @@ private void initCDDL() { //host = CDDL.startMicroBroker(); connection = ConnectionFactory.createConnection(); - connection.setClientId("app"); + connection.setClientId(this.CLIENT_ID); connection.setHost(host); connection.addConnectionListener(connectionListener); connection.setEnableIntermediateBuffer(true); @@ -99,7 +100,89 @@ private void initCDDL() { cddl.startCommunicationTechnology(CDDL.INTERNAL_TECHNOLOGY_ID); } - @Override + private void secureInitCDDL() { + /* + Ip do Broker MQTT + Para você utilizar um Broker externo ou na sua máquina, você deve + configurar o proxy do emulador manualmente e colocar o ip referente + ao Broker. + Este método utiliza o cddl no modo seguro. + */ + host = "192.168.18.12"; + +// host = CDDL.startSecureMicroBroker(getApplicationContext(), true ); + + connection = ConnectionFactory.createConnection(); + connection.setClientId(this.CLIENT_ID); + connection.setHost(host); + connection.addConnectionListener(connectionListener); + connection.setEnableIntermediateBuffer(true); + connection.secureConnect(getApplicationContext()); + cddl = CDDL.getInstance(); + cddl.setConnection(connection); + cddl.setContext(this); + cddl.startService(); + cddl.startCommunicationTechnology(CDDL.INTERNAL_TECHNOLOGY_ID); + } + + + + /* + Método para gerar a requisição de certificado digital; + */ + public void generateCSR(String nomeComum, + String unidadeOrganizacional, + String organizacao, + String cidade, + String estado, + String pais){ + SecurityService securityService = CDDL + .getSecurityServiceInstance(getApplicationContext()); + + securityService + .generateCSR( + nomeComum, + unidadeOrganizacional, + organizacao, + cidade, + estado, + pais); + + } + + /* + Método para importar o certificado assinado da autoridade certificadora e certificado do cliente + */ + public void importClientAndCaCertificate(String caCertFileName, String clientCertFileName ){ + try { + securityService.setCaCertificate(caCertFileName); + securityService.setCertificate(clientCertFileName); + + securityService.grantReadPermissionByCDDLTopic("andre", SecurityService.ALL_TOPICS); + securityService.grantWritePermissionByCDDLTopic("andre",SecurityService.ALL_TOPICS); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + } + + /* + Método para adicionar as regras de acesso a todos os tópicos ao microbroker para um cliente específico + */ + public void importClientAndCaCertificate(String clientID, String clientCertFileName ){ + try { + + + securityService.grantReadPermissionByCDDLTopic(clientID, SecurityService.ALL_TOPICS); + securityService.grantWritePermissionByCDDLTopic(clientID,SecurityService.ALL_TOPICS); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + } + + + @Override protected void onDestroy() { cddl.stopAllCommunicationTechnologies();; cddl.stopService(); From a6d427a9abbce48830761bf6e2f94847d82ec5be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Cardoso?= Date: Wed, 17 Nov 2021 16:35:23 -0300 Subject: [PATCH 2/3] =?UTF-8?q?Corrigindo=20m=C3=A9todo=20importClientAndC?= =?UTF-8?q?aCertificate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/br/ufma/lsdi/cddlbaseproject/MainActivity.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/src/main/java/br/ufma/lsdi/cddlbaseproject/MainActivity.java b/app/src/main/java/br/ufma/lsdi/cddlbaseproject/MainActivity.java index 1cf6938..929e8ff 100644 --- a/app/src/main/java/br/ufma/lsdi/cddlbaseproject/MainActivity.java +++ b/app/src/main/java/br/ufma/lsdi/cddlbaseproject/MainActivity.java @@ -158,9 +158,6 @@ public void importClientAndCaCertificate(String caCertFileName, String clientCer securityService.setCaCertificate(caCertFileName); securityService.setCertificate(clientCertFileName); - securityService.grantReadPermissionByCDDLTopic("andre", SecurityService.ALL_TOPICS); - securityService.grantWritePermissionByCDDLTopic("andre",SecurityService.ALL_TOPICS); - } catch (FileNotFoundException e) { e.printStackTrace(); } From 4f66c9457a6e9e65a4d543e1656de8f4aa66c4c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Cardoso?= Date: Wed, 17 Nov 2021 16:36:27 -0300 Subject: [PATCH 3/3] =?UTF-8?q?Removendo=20espa=C3=A7os?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/br/ufma/lsdi/cddlbaseproject/MainActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/br/ufma/lsdi/cddlbaseproject/MainActivity.java b/app/src/main/java/br/ufma/lsdi/cddlbaseproject/MainActivity.java index 929e8ff..9a26667 100644 --- a/app/src/main/java/br/ufma/lsdi/cddlbaseproject/MainActivity.java +++ b/app/src/main/java/br/ufma/lsdi/cddlbaseproject/MainActivity.java @@ -179,7 +179,7 @@ public void importClientAndCaCertificate(String clientID, String clientCertFileN } - @Override + @Override protected void onDestroy() { cddl.stopAllCommunicationTechnologies();; cddl.stopService();