SmartPhoneLover
02/11/16, 08:48:46
Bien, como ayer pasé preguntando a ver si había alguna forma de integración con Tasker de la App 'OpenKeyChain (https://play.google.com/store/apps/details?id=org.sufficientlysecure.keychain&hl=es)' y al final me comentaron que nunca antes se había tratado un tema parecido por esta sección, me decidí a crear éste hilo para discutir una nueva forma de encriptación de archivos en Tasker.
La tarea esta en JAVA, y basado en el código contenido en este (http://stackoverflow.com/questions/10782187/how-to-encrypt-file-from-sd-card-using-aes-in-android/10782267#10782267) hilo externo.
ENCRIPTAR
A1: Establecer variable [ Nombre:%filetoencrypt A:xxx Calcular:Apagado Añadir:Apagado ]
A2: Establecer variable [ Nombre:%encryptedfile A:xxx Calcular:Apagado Añadir:Apagado ]
A3: Establecer variable [ Nombre:%pass A:xxx Calcular:Apagado Añadir:Apagado ]
A4: Java Function [ Devolver:fis Class Or Object:FileInputStream Función:new {FileInputStream} (String) Param:%filetoencrypt Param: Param: Param: Param: Param: Param: ]
A5: Java Function [ Devolver:fos Class Or Object:FileOutputStream Función:new {FileOutputStream} (String) Param:%encryptedfile Param: Param: Param: Param: Param: Param: ]
A6: Java Function [ Devolver:passbytes Class Or Object:(String) %pass Función:getBytes {byte[]} () Param: Param: Param: Param: Param: Param: Param: ]
A7: Java Function [ Devolver:sks Class Or Object:SecretKeySpec Función:new {SecretKeySpec} (byte[], String) Param:passbytes Param:AES Param: Param: Param: Param: Param: ]
A8: Java Function [ Devolver:cipher Class Or Object:Cipher Función:getInstance {Cipher} (String) Param:AES Param: Param: Param: Param: Param: Param: ]
A9: Java Function [ Devolver: Class Or Object:cipher Función:init {} (int, Key) Param:1 Param:sks Param: Param: Param: Param: Param: ]
A10: Java Function [ Devolver:cos Class Or Object:CipherOutputStream Función:new {CipherOutputStream} (OutputStream, Cipher) Param:fos Param:cipher Param: Param: Param: Param: Param: ]
A11: Java Function [ Devolver:rb Class Or Object:byte[] Función:new {byte[]} (int) Param:256 Param: Param: Param: Param: Param: Param: ]
A12: Java Function [ Devolver:b Class Or Object:fis Función:read {int} (byte[]) Param:rb Param: Param: Param: Param: Param: Param: ]
A13: Si (if) [ b != -1 ]
A14: Java Function [ Devolver: Class Or Object:cos Función:write {} (byte[], int, int) Param:rb Param:0 Param:b Param: Param: Param: Param: ]
A15: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:ReadFile ]
A16: Fin si (End if)
A17: Java Function [ Devolver: Class Or Object:cos Función:flush {} () Param: Param: Param: Param: Param: Param: Param: ]
A18: Java Function [ Devolver: Class Or Object:cos Función:close {} () Param: Param: Param: Param: Param: Param: Param: ]
A19: Java Function [ Devolver: Class Or Object:fis Función:close {} () Param: Param: Param: Param: Param: Param: Param: ]
DESENCRIPTAR
A1: Establecer variable [ Nombre:%filetodecrypt A:xxx Calcular:Apagado Añadir:Apagado ]
A2: Establecer variable [ Nombre:%decryptedfile A:xxx Calcular:Apagado Añadir:Apagado ]
A3: Establecer variable [ Nombre:%pass A:xxx Calcular:Apagado Añadir:Apagado ]
A4: Java Function [ Devolver:fis Class Or Object:FileInputStream Función:new {FileInputStream} (String) Param:%filetodecrypt Param: Param: Param: Param: Param: Param: ]
A5: Java Function [ Devolver:fos Class Or Object:FileOutputStream Función:new {FileOutputStream} (String) Param:%decryptedfile Param: Param: Param: Param: Param: Param: ]
A6: Java Function [ Devolver:passbytes Class Or Object:(String) %pass Función:getBytes {byte[]} () Param: Param: Param: Param: Param: Param: Param: ]
A7: Java Function [ Devolver:sks Class Or Object:SecretKeySpec Función:new {SecretKeySpec} (byte[], String) Param:passbytes Param:AES Param: Param: Param: Param: Param: ]
A8: Java Function [ Devolver:cipher Class Or Object:Cipher Función:getInstance {Cipher} (String) Param:AES Param: Param: Param: Param: Param: Param: ]
A9: Java Function [ Devolver: Class Or Object:cipher Función:init {} (int, Key) Param:2 Param:sks Param: Param: Param: Param: Param: ]
A10: Java Function [ Devolver:cis Class Or Object:CipherInputStream Función:new {CipherInputStream} (InputStream, Cipher) Param:fis Param:cipher Param: Param: Param: Param: Param: ]
A11: Java Function [ Devolver:rb Class Or Object:byte[] Función:new {byte[]} (int) Param:256 Param: Param: Param: Param: Param: Param: ]
A12: Java Function [ Devolver:b Class Or Object:cis Función:read {int} (byte[]) Param:rb Param: Param: Param: Param: Param: Param: ]
A13: Si (if) [ b != -1 ]
A14: Java Function [ Devolver: Class Or Object:fos Función:write {} (byte[], int, int) Param:rb Param:0 Param:b Param: Param: Param: Param: ]
A15: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:ReadFile ]
A16: Fin si (End if)
A17: Java Function [ Devolver: Class Or Object:fos Función:flush {} () Param: Param: Param: Param: Param: Param: Param: ]
A18: Java Function [ Devolver: Class Or Object:fos Función:close {} () Param: Param: Param: Param: Param: Param: Param: ]
A19: Java Function [ Devolver: Class Or Object:cis Función:close {} () Param: Param: Param: Param: Param: Param: Param: ]
La tarea esta en JAVA, y basado en el código contenido en este (http://stackoverflow.com/questions/10782187/how-to-encrypt-file-from-sd-card-using-aes-in-android/10782267#10782267) hilo externo.
ENCRIPTAR
A1: Establecer variable [ Nombre:%filetoencrypt A:xxx Calcular:Apagado Añadir:Apagado ]
A2: Establecer variable [ Nombre:%encryptedfile A:xxx Calcular:Apagado Añadir:Apagado ]
A3: Establecer variable [ Nombre:%pass A:xxx Calcular:Apagado Añadir:Apagado ]
A4: Java Function [ Devolver:fis Class Or Object:FileInputStream Función:new {FileInputStream} (String) Param:%filetoencrypt Param: Param: Param: Param: Param: Param: ]
A5: Java Function [ Devolver:fos Class Or Object:FileOutputStream Función:new {FileOutputStream} (String) Param:%encryptedfile Param: Param: Param: Param: Param: Param: ]
A6: Java Function [ Devolver:passbytes Class Or Object:(String) %pass Función:getBytes {byte[]} () Param: Param: Param: Param: Param: Param: Param: ]
A7: Java Function [ Devolver:sks Class Or Object:SecretKeySpec Función:new {SecretKeySpec} (byte[], String) Param:passbytes Param:AES Param: Param: Param: Param: Param: ]
A8: Java Function [ Devolver:cipher Class Or Object:Cipher Función:getInstance {Cipher} (String) Param:AES Param: Param: Param: Param: Param: Param: ]
A9: Java Function [ Devolver: Class Or Object:cipher Función:init {} (int, Key) Param:1 Param:sks Param: Param: Param: Param: Param: ]
A10: Java Function [ Devolver:cos Class Or Object:CipherOutputStream Función:new {CipherOutputStream} (OutputStream, Cipher) Param:fos Param:cipher Param: Param: Param: Param: Param: ]
A11: Java Function [ Devolver:rb Class Or Object:byte[] Función:new {byte[]} (int) Param:256 Param: Param: Param: Param: Param: Param: ]
A12: Java Function [ Devolver:b Class Or Object:fis Función:read {int} (byte[]) Param:rb Param: Param: Param: Param: Param: Param: ]
A13: Si (if) [ b != -1 ]
A14: Java Function [ Devolver: Class Or Object:cos Función:write {} (byte[], int, int) Param:rb Param:0 Param:b Param: Param: Param: Param: ]
A15: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:ReadFile ]
A16: Fin si (End if)
A17: Java Function [ Devolver: Class Or Object:cos Función:flush {} () Param: Param: Param: Param: Param: Param: Param: ]
A18: Java Function [ Devolver: Class Or Object:cos Función:close {} () Param: Param: Param: Param: Param: Param: Param: ]
A19: Java Function [ Devolver: Class Or Object:fis Función:close {} () Param: Param: Param: Param: Param: Param: Param: ]
DESENCRIPTAR
A1: Establecer variable [ Nombre:%filetodecrypt A:xxx Calcular:Apagado Añadir:Apagado ]
A2: Establecer variable [ Nombre:%decryptedfile A:xxx Calcular:Apagado Añadir:Apagado ]
A3: Establecer variable [ Nombre:%pass A:xxx Calcular:Apagado Añadir:Apagado ]
A4: Java Function [ Devolver:fis Class Or Object:FileInputStream Función:new {FileInputStream} (String) Param:%filetodecrypt Param: Param: Param: Param: Param: Param: ]
A5: Java Function [ Devolver:fos Class Or Object:FileOutputStream Función:new {FileOutputStream} (String) Param:%decryptedfile Param: Param: Param: Param: Param: Param: ]
A6: Java Function [ Devolver:passbytes Class Or Object:(String) %pass Función:getBytes {byte[]} () Param: Param: Param: Param: Param: Param: Param: ]
A7: Java Function [ Devolver:sks Class Or Object:SecretKeySpec Función:new {SecretKeySpec} (byte[], String) Param:passbytes Param:AES Param: Param: Param: Param: Param: ]
A8: Java Function [ Devolver:cipher Class Or Object:Cipher Función:getInstance {Cipher} (String) Param:AES Param: Param: Param: Param: Param: Param: ]
A9: Java Function [ Devolver: Class Or Object:cipher Función:init {} (int, Key) Param:2 Param:sks Param: Param: Param: Param: Param: ]
A10: Java Function [ Devolver:cis Class Or Object:CipherInputStream Función:new {CipherInputStream} (InputStream, Cipher) Param:fis Param:cipher Param: Param: Param: Param: Param: ]
A11: Java Function [ Devolver:rb Class Or Object:byte[] Función:new {byte[]} (int) Param:256 Param: Param: Param: Param: Param: Param: ]
A12: Java Function [ Devolver:b Class Or Object:cis Función:read {int} (byte[]) Param:rb Param: Param: Param: Param: Param: Param: ]
A13: Si (if) [ b != -1 ]
A14: Java Function [ Devolver: Class Or Object:fos Función:write {} (byte[], int, int) Param:rb Param:0 Param:b Param: Param: Param: Param: ]
A15: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:ReadFile ]
A16: Fin si (End if)
A17: Java Function [ Devolver: Class Or Object:fos Función:flush {} () Param: Param: Param: Param: Param: Param: Param: ]
A18: Java Function [ Devolver: Class Or Object:fos Función:close {} () Param: Param: Param: Param: Param: Param: Param: ]
A19: Java Function [ Devolver: Class Or Object:cis Función:close {} () Param: Param: Param: Param: Param: Param: Param: ]