Trustword es un programa muy simple para la firma, el cifrado y el mantenimiento de claves para facilitar y fortalecer una comunicación segura. Usa internamente (gracias a libsodium) para el cifrado XSalsa20, y en el caso de la criptografía asimétrica, se complementa con el intercambio de claves X25519. Y para la firma digital Ed25519ph con SHA512.
- gcc (recomendado) o clang (no probado)
- cmake
- openssl
- libsodium
- argon2
- sqlite3
git clone https://github.com/UltraTesla/trustword.git
cd trustword
chmod +x dependences.sh
./dependences.sh
sudo chown <Tu nombre de usuario>:<Tu grupo> ~/.trustword
trustword --help
Nota: También se puede ejecutar para ver los ejemplos en pantalla:
./trustword --examples
Crear un usuario:
./trustword -g --user [Nombre de usuario] --password [Contraseña]
Eliminar un usuario:
./trustword --delete --user [Nombre de usuario]
Actualizar la contraseña:
./trustword -E --user [Nombre de usuario] | ./trustword -I - --hash [Huella dactilar] -p [Contraseña] -N [Nueva contraseña] --overwrite
Exportar una clave pública:
./trustword -e --user [Nombre de usuario]
Importar una clave pública (sin registro):
./trustword -i [Ruta de la clave] --hash [Huella dactilar]
Importar una clave pública (con registro):
./trustword -i [Ruta de la clave] --password [Contraseña] --hash [Huella dactilar]
Exportar una clave secreta:
./trustword -E --user [Nombre de usuario]
Exportar una clave de verificación:
./trustword -z --user [Nombre de usuario]
Exportar una clave para firmar:
./trustword -Z --user [Nombre de usuario]
Notas:
- En el caso de querer importar una clave de verificación con registro, se debe hacer el mismo procedimiento que en la importación de la clave pública; cosa inválida para la importación de alguna clave privada (secreta o para firmar).
- En caso de querer importar una clave privada sin antes haber importando el par público, ocasionará un error. Y si se agregó una clave pública sin registro, entonces obtendrá un error.
Cifrar simétricamente:
./trustword -k [Nombre del archivo a cifrar] --password [Contraseña]
Descifrar simétricamente:
./trustword -K [Nombre del archivo a descifrar] --password [Contraseña]
Cifrar usando el par de claves:
./trustword -C [Nombre del archivo a cifrar] --from [Nombre de usuario - origen] --to [Nombre de usuario - destino] --password [Contraseña de la clave secreta del usuario de origen]
Descifrar usando el par de claves:
./trustword -D [Nombre del archivo a descifrar --from [Nombre de usuario - origen] --to [Nombre de usuario - destino] --password [Contraseña de la clave secreta del usuario de destino]
Firmar:
./trustword -s [Nombre del archivo a firmar] --user [Nombre de usuario] --password [Contraseña del usuario de la clave para firmar]
Verificar:
./trustword -v [Nombre del archivo original] -V [Nombre del archivo de la firma] --user [Nombre de usuario de la clave de verificación]
Listar todos los usuarios:
./trustword --list
Listar a un usuario específico:
./trustword --list --user [Nombre de usuario]
~ DtxdF