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..9a26667 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,6 +100,85 @@ private void initCDDL() { cddl.startCommunicationTechnology(CDDL.INTERNAL_TECHNOLOGY_ID); } + 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); + + } 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();;