Cómo usar PGP en Camel Routes

C

apache Camel es un poderoso marco de enrutamiento empresarial que puede usarse para enviar información de cualquier manera, con casi cualquier protocolo que desee usar. Y no es ningún secreto lo importante que es el cifrado, por lo que usar los dos juntos tiene sentido.

PGP, específicamente, significa “Pretty Good Privacy” y se ha convertido en uno de los algoritmos de cifrado más populares en los últimos años. A menudo se utiliza para firmar, cifrar y descifrar cualquier tipo de datos, incluidos texto, correos electrónicos o incluso una partición de disco completa.

El código

Y ahora con el código:

// Public Key FileName
final String keyFileName = "/path/to/public.gpg";

// Private Key FileName
final String keyFileNameSec = "/path/to/private.gpg";

// Keyring Userid Used to Encrypt
final String keyUserid = "userid_for_key";

// Private key password
final String keyPassword = "sooper_sekret_pass";

CamelContext context = new DefaultCamelContext();

context.addRoutes(new RouteBuilder() {
    public void configure() {
        from("stream:in")
          .multicast().to("direct:original", "direct:encrypt");

        // Save the original input
    	from("direct:original")
    	  .to("file:C:\Users\srobin\Desktop\crypto?fileName=original.txt");
	  
        // Encrypts and saves the input
    	from("direct:encrypt")
    	  .marshal().pgp(keyFileName, keyUserid)
    	  .multicast()
    	  .to("direct:unencrypt", "file:C:\Users\srobin\Desktop\crypto?fileName=encrypted.txt");
	  
        // Decrypts and saves the output
    	from("direct:unencrypt")
    	  .unmarshal().pgp(keyFileNameSec, keyUserid, keyPassword)
    	  .to("file:C:\Users\srobin\Desktop\crypto?fileName=unencrypted.txt");
    }
});

Este simple ejemplo es principalmente una prueba de concepto para mostrar cómo puede cifrar y descifrar datos usando PGP y Camel, pero transmite el punto de cómo lo usaría en un sistema real.

Básicamente, lo que hace el código anterior es tomar datos del stream entrada y dirigirlo a dos caminos diferentes. El primero es el direct:original route, que simplemente guarda la entrada en un archivo para que pueda verlo más tarde.

La segunda ruta a la que se envía es direct:encrypt, que luego calcula los datos mediante el algoritmo PGP y la clave que proporcionamos. A partir de ahí, la salida se guarda en un archivo para que pueda inspeccionar los datos cifrados y enviarlos a otra ruta que realmente los descifrará por usted (para que pueda ver todo el proceso).

La ruta final direct:unencrypt, simplemente toma datos cifrados con nuestra clave pública y los descifra con nuestra clave secreta, y finalmente los guarda en un archivo.

Dado que los datos se guardan en cada punto de la ruta, puede verificar que los datos estén realmente cifrados y descifrados.

Si está utilizando Maven, no olvide agregar lo siguiente a su POM:

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-crypto</artifactId>
  <version>2.9.0</version>
</dependency>

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad