pequeño script linux en php con gpg sin complicaciones

@pedroruizhidalg―Cuando uso el comando gpg de Linux para encriptar me ocurre que el orden de los argumentos no me gusta. Yo lo hubiera diseñado de otra forma, pero es como es. Así que me he creado un pequeño programa en php al que le suministro los argumentos como me gusta. Cumple su misión pues a mí me sirve.

Ubicación y activación

Tengo un directorio oculto al que he llamado ~/.bin. Para que se ejecuten los scripts ―tengo muchos― que creo para linux hay que incluir el nombre de este directorio en la variable de sistema $PATH. El procedimiento es el siguiente:

  1. Editamos el archivo ~/.bashrc y en su última linea incluimos “export PATH=$PATH:~/.bin”. Realmente, en mi caso puse la ruta completa “/home/pedro/.bin”.
  2. Comprobar que está incluida mediante el comando de linux “echo $PATH”. En la retahila aparece el último debe ser nuestro .bin.
  3. mkdir ~/.bin
  4. cd ~/.bin
  5. touch encriptar
  6. chmod +x encriptar

Lo editamos con nuestro editor preferido y colocamos el siguiente código:

#!/usr/bin/php -q

<?php

$recipient         = (isset($argv[3])&&(strtolower($argv[3]=='pedro'))) ? 'E1AEA6C0' : 'B9CDAB41';
$recipiente        = ($recipient=='E1AEA6C0') ? 'Pedro Ruiz Hidalgo' : '@pedroruizhidalg';

?>

Este script encripta gpg (asimétrico) con el recipiente <?=$recipiente?>

Saludos a la afición!!!

<?php

$archivo        = $argv[1];
$salida            = $argv[2].".gpg";


$encriptar        = "gpg --output $salida --encrypt --recipient $recipient $archivo";



if(!file_exists($archivo))
{
    echo "no existe $archivo";
    exit();
}

if(file_exists($salida))
{
    echo "el archivo $salida existe";
    exit("saliendo...");
}

echo shell_exec($encriptar);

?>

Funcionamiento

En mi anillo de claves tengo varias identidades, una de ellas es “Pedro” y la otra es “@pedroruizhidalg”, a esto es a lo que gpg llama recipientes y podéis listar así

$ gpg --list-keys

allí podéis ver el número hexadecimal que vuestro anillo de claves asigna a cada “recipient” ―identidad, vaya―. En mi sistema quien firma por defecto es la identidad “@pedroruizhidalg” a no ser que especifique literalmente en el tercer argumento que se trata de “pedro”. El funcionamiento es este:

$ encriptar [archivo_existente] [nombre_del_archivo_de_salida] [opcionalmente "pedro"]

Espero que este script os sirva de ayuda. Podéis hacerme consultas, estaré encantado de atenderlas.

#aboutpedroruizhidalgo


♻ miotroblogsite ahorra papel

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: