CLI

Utiliser les outils CLI Seald

L'application

Il est possible d'utiliser l'application de bureau en ligne de commande.

Pour utiliser l'application en ligne de commande, l'application ne doit pas être déjà lancée.

Dans un terminal, entrez le chemin de l'exécutable Seald, immédiatement suivi de l'argument --headless, puis de la commande :

$ chemin/Seald.exe --headless commande

Windows

$ seald.exe --headless --version
seald-app headless vX.X.XX / windows

Mac OS

$ /Applications/Seald.app/Contents/MacOS/Seald --headless --version
seald-app headless vX.X.XX / darwin

Linux

$ /Chemin/Seald-X.X.XX.AppImage --headless --version
seald-app headless vX.X.XX / linux

L'outil CLI

Instalation

Pour installer Seald-CLI, télécharger et installer manuellement NodeJS 10 LTS à l'adresse https://nodejs.org/en/download/.

Une fois NodeJS installé, exécuter la commande suivante :

npm install --global --production https://api.seald.io/seald-sdk/seald-cli-1.6.0.tgz

Utilisation

Après avoir installé l'outil Seald-CLI, celui-ci devrait être disponible dans un terminal.

$ seald commande

Par exemple :

$ seald --version
seald-cli headless vX.X.XX / windows

Liste des commandes

  • create-account [display-name] [email] [team-id] Créer un compte
  • add-email [email] Ajouter un email au compte
  • list-team-invitations Lister les invitations à des équipes
  • join-team [team-id] Rejoindre une équipe
  • encrypt [input..] Chiffrer des fichiers
  • decrypt [input..] Déchiffrer des fichiers
  • add-recipients [input..] Ajouter des destinataires à un fichier chiffré existant
  • revoke [input..] Révoquer des destinataires à un fichier chiffré existant
  • get-info [input] Afficher des informations a propos d'un fichier chiffré
  • watch-encrypt [input] [output] Surveille un dossier, et chiffre tous les fichiers écrits dans ce dossier.
  • create-backup-key [output] Créer une clé de backup
  • load-backup-key [key] Charger une clé de backup

Création de compte

La création comporte trois étapes :

  • la création d'un utilisateur et d'une clé privée ;
  • l'ajout et la validation d'un email ;
  • la sélection d'une équipe

Pour être complet un compte doit avoir au moins un email et une équipe.

Si vous utilisez un domaine pré-validé, vous pouvez utiliser une clé de validation via l'option --email-validation lors des commandes create-account et add-email. L'utilisation de cette clé valide automatiquement l'email, et ajoute l'utilisateur à l'equipe.

create-account

La commande create-account permet de créer un compte et, optionnellement, de lui ajouter un email et de rejoindre une équipe.

seald create-account [--display-name <display_name>] [--email <email> [--email-validation <validation_token>] [--force] [--team-id <team_id>]]

Exemples

Pour créer un compte :

seald create-account

Pour créer un compte avec un email :

seald create-account --display-name Tim --email tim@seald.io

Pour créer un compte avec un email, et rejoindre une équipe :

seald create-account -d Tim -e tim@seald.io -t 00000000-0000-0000-0000-000000000000

Pour créer un compte avec un email appartenant à un domaine prévalidé :

seald  create-account -d Tim -e tim@seald.io --email-validation 69ddb1130cab76a9f4639e25b442d0358687436bccbf21a3e61bd0c1a2888246107e1cf9fd05f80d607f68fc0c8286ce06275356a01c4bd0e275f055832a5cde

Options

  • --display-name, -d Nom de l'utilisateur. Celui ci n'est pas modifiable en CLI. [default: "CLI Account"]
  • --email, -e Adresse email de l'utilisateur. [string] [default: null]
  • --email-validation Clé de validation automatique. [string] [require: email]
  • --force, -f Force l'ajout de l'email si celui si est déjà enregistré. [boolean]
  • --team-id, -t UUID de l'équipe à rejoindre. [string] [default: null] [require: email]

add-email

La commande add-email permet d'ajouter un email au compte.

Cette opération nécessite d'avoir créé un compte au préalable via la commande create-account.

Un compte nécessite au moins un email pour pouvoir être utilisé. Un compte peut avoir plusieurs emails.

Pour valider l'ajout d'un email, il est necessaire de rentrer une clé de validation qui est envoyée par email.

Si l'adresse email est déjà associée à un compte seald, une confirmation sera demandée. L'option --force permet forcer cette confirmation.

Si vous utilisez un domaine pré-validé, vous pouvez utiliser une clé de validation via l'option --email-validation lors des commandes create-account et add-email. L'utilisation de cette clé valide automatiquement l'email, et ajoute l'utilisateur à l'equipe.

seald add-email --email <email> [--email-validation <validation_token>] [--force]

Exemples

seald add-email --email tim@seald.io
seald add-email -e tim@seald.io --force --email-validation 69ddb1130cab76a9f4639e25b442d0358687436bccbf21a3e61bd0c1a2888246107e1cf9fd05f80d607f68fc0c8286ce06275356a01c4bd0e275f055832a5cde

Options:

  • --email, -e Adresse email de l'utilisateur. [string] [default: null]
  • --email-validation Clé de validation automatique. [string] [require: email ]
  • --force, -f Force l'ajout de l'email si celui si est déjà enregistré. [boolean]

Gestion des équipes

list-team-invitations

Cette commande nécessite d'avoir un compte avec au moins un email validé.

Cette commande ne prend pas d'argument.

seald list-team-invitations

Exemple

seald list-team-invitations

Sorti attendue :
team: <team_name>, invited by: <inviter_email>, team ID: <team_id>

join-team

La commande join-team permet de rejoindre une équipe en acceptant une invitation Cette commande nécessite d'avoir un compte avec au moins un email validé.

seald join-team --team-id <team_id>

Exemple

$ seald join-team --team-id 00000000-0000-0000-0000-000000000000

Options

  • --team-id, -t UUID de l'équipe que vous souhaitez rejoindre. [string] [required]

Chiffrement & déchiffrement

encrypt

La commande encrypt permet de chiffrer un ou plusieurs fichiers, Cette opération nécessite d'avoir un compte et une équipe.

seald encrypt [--output <output_file>] [--recipients-ids <...recipients_ids>] [--recipients-emails <...recipients_emails>] [--recipients-emails-file <recipients_emails_file>] [--force-self] --input <files_to_encrypt..>

Alias

  • encrypt-file

Exemples

Chiffrer un fichier uniquement pour soi-même, sans demander de confirmation :

seald encrypt --input chemin/fichier.pdf --output chemin/fichier.pdf.shtml --force-self

Chiffrer deux fichiers pour deux destinataires:

seald encrypt -i 'chemin/fichier.pdf' 'chemin/annexe.pdf' --recipients-ids 'JqTsYFZAAuSHVGofjmsg8g' 'ZAAJqTsYFSHVGofjmsg8gu' --emails 'email@domain.tld' 'email@domain.tld'

Chiffrer un dossier de manière récursive, avec suppression des fichiers en clair, afficher un avertissement si le chiffrement de fichier a échoué :

seald encrypt -i chemin/fichier.pdf -o chemin/fichier.pdf.shtml --emails-file chemin/emails.txt --recursive --remove --on-error warn

Options

  • --input, -i, --file, --files, -f Chemin des fichiers à chiffrer. [array] [required]
  • --output, -o Chemin où seront écrits les fichiers chiffrés. Par défaut, le chemin courant est utilisé, avec le nom du fichier d'entrée + .shtml [string]
  • --recipients-ids, --uids Tableau des IDs des destinataires ayant un compte Seald. [array] [default: []]
  • --recipients-emails, --emails Tableau des emails des destinataires n'ayant pas de compte Seald. [array] [default: []]
  • --recipients-emails-file, --emails-file Chemin d'un fichier contenant les email des destinataires. [string]
  • --force-self Ne pas demander de confirmation s'il n'y a pas d'autre destinataire que le compte chiffrant. [boolean]
  • --recursive, -r Si l'entrée est un dossier, chiffrer récursivement tous les fichiers. [boolean]
  • --retries Lors du chiffrement de plusieurs fichiers et qu'il y a une erreur, retenter ce nombre de fois. [number] [default: 3]
  • --on-error Choix du comportement quand une erreur survient lors du chiffrement de plusieurs fichiers. [string] [choices: "ignore", "warn", "fail"] [default: "fail"]
  • --parallel Nombre de processus de chiffrement lors du chiffrement de plusieurs fichiers. [number] [default: 10]
  • --remove, -R Après le chiffrement, supprimer le fichier en clair. S'il s'agit d'un dossier, supprimer le dossier. [boolean]
  • --remove-files Après le chiffrement, supprimer le fichier clair. S'il s'agit d'un dossier, supprimer seulement les fichiers. [boolean]
  • --on-same-file-name Comportement en cas de conflit sur le nom du fichier de sortie [string] [choices: "overwrite", "error", "increment", "skip"] [default: "error"]

decrypt

La commande decrypt permet de déchiffrer un ou plusieurs fichiers. Cette opération nécessite d'avoir un compte et une team.

seald decrypt --file <file_to_decrypt> [--output <output_directory>] [--offline-database <offline_database_path>] [--force] [--safe]

Alias

  • decrypt-file

Exemples

Déchiffrer un fichier :

seald decrypt -i chemin/fichier.txt.shtml -o chemin/fichier.txt

Déchiffrer un fichier en utilisant un fichier de sauvegarde des clés :

seald decrypt -i chemin/fichier.txt.shtml -o chemin/fichier.txt --offline-database chemin/backup-database.txt

Déchiffrer un dossier de manière récursive, en affichant un avertissement si certains fichiers ne peuvent pas être déchiffrés :

seald decrypt -i chemin/dossierChiffre/ -o chemin/dossierClaire/ --on-error warn --on-non-seald warn

Options

  • --input, -i, --file, --files, -f Chemin des fichiers à déchiffrer. [array] [required]
  • --output, --output-dir, -o Chemin où seront écrits les fichier déchiffrés. Par default, le chemin courant est utilisé. [string]
  • --offline-database, -d Utiliser un fichier de sauvegarde des clés de chiffrement. [string]
  • --force, -f Forcer les déchiffrements s'il y a un avertissement, sans confirmation. Seulement quand on déchiffre un fichier unique. Toujours vrai en déchiffrant plusieurs fichiers. [array]
  • --safe, -s Ne pas déchiffrer si il y a un avertissement, sans demander confirmation. [boolean]
  • --recursive, -r Si l'entrée est un dossier, déchiffrer récursivement tous les fichiers. [boolean]
  • -retries Lors du chiffrement de plusieurs fichiers et qu'il y a une erreur, retenter ce nombre de fois. [number] [default: 3]
  • --on-error Choix du comportement quand une erreur survient lors du déchiffrement de plusieurs fichier. [string] [choices: "ignore", "warn", "fail"] [default: "fail"]
  • --on-non-seald Choix du comportement si un fichier n'est pas un fichier Seald lors du déchiffrement de plusieurs fichiers. [string] [choices: "ignore", "warn", "fail"] [default: "warn"]
  • -parallel Nombre de processus de déchiffrements lors du déchiffrement de plusieurs fichiers. [number] [default: 10]
  • --remove, -R Après le déchiffrements, supprimer le fichier chiffré. S'il s'agit d'un dossier, supprimer le dossier. [boolean]
  • --remove-files Après le déchiffrements, supprimer le fichier chiffré. S'il s'agit d'un dossier, supprimer seulement les fichiers. [boolean]

add-recipients

La commande add-recipients permet d'ajouter des destinataires à un fichier chiffré existant. Cette opération nécessite d'avoir un compte et une équipe.

seald add-recipients [input..]

Alias

  • authorize-recipients

Exemple

Ajouter deux utilisateurs ayant seald à l'aide de leur IDs, et deux utilisateurs n'ayant pas Seald à l'aide de leur adresse email.

seald add-recipients -i chemin/fichier.pdf.shtml --uids 'JqTsYFZAAuSHVGofjmsg8g' 'AAuSHVJqTsYFZGofjmsg8g' --emails 'email@domain.tld' 'email@domain.tld'

Options

  • --input, -f, --file, --files, -i Chemin des fichiers chiffrés [array] [required]
  • --recipients-ids, --uids Tableau des IDs des destinataires ayant un compte Seald. [array] [default: []]
  • --recipients-emails, --emails Tableau des emails des destinataires n'ayant pas de compte Seald. [array] [default: []]
  • --recipients-emails-file, --emails-file Chemin d'un fichier contenant les emails des destinataires à ajouter. [string]
  • --recursive, -r Si l'entrée est un dossier, ajouter les destinataires à tous les fichiers. [boolean]
  • --on-error Choix du comportement quand une erreur survient lors du déchiffrement de plusieurs fichiers. [string] [choices: "ignore", "warn", "fail"] [default: "fail"]
  • --on-non-seald Choix du comportement si un fichier n'est pas un fichier Seald lors du déchiffrement de plusieurs fichiers. [string] [choices: "ignore", "warn", "fail"] [default: "warn"]
  • --parallel Nombre de processus d'ajout de destinataires lors d'une opération sur plusieurs fichiers. [number] [default: 10]

revoke

La commande revoke permet de révoquer des destinataires à un fichier chiffré existant. Cette opération nécessite d'avoir un compte et une équipe.

seald revoke --file <...files_path> [--revoke-emails <...emails_to_revoke>] [--revoke-emails-file <emails_list_to_revoke>] [--revoke-ids <...ids_to_revoke>]

Exemple

Révoquer deux utilisateurs ayant seald à l'aide de leur IDs, et deux utilisateurs n'ayant pas Seald à l'aide de leur adresse email.

seald revoke -i chemin/fichier.pdf.shtml --uids 'JqTsYFZAAuSHVGofjmsg8g' 'AAuSHVJqTsYFZGofjmsg8g' --emails 'email@domain.tld' 'email@domain.tld'

Options

  • --input, -f, --file, --files, -i Chemin des fichiers chiffrés. [array] [required]
  • --revoke-all, --all Révoquer tout les destinataires. [boolean]
  • --revoke-others, --others Révoquer tout les destinataires excepter ce compte. [boolean]
  • --revoke-emails, --emails Tableau des emails des destinataires n'ayant pas de compte Seald à révoquer. [array]
  • --revoke-emails-file, --emails-file Chemin d'un fichier contenant les emails des destinataires à révoquer. [string]
  • --revoke-ids, --uids Tableau des IDs des destinataires ayant un compte Seald à révoquer. [array]
  • --recursive, -r Si l'entrée est un dossier, revoquer les destinataires à tous les fichiers. [boolean]
  • --retries Si le système de fichier à une erreur, retenter ce nombre de fois (les erreurs autres que celles du système de fichier). [number] [default: 3]
  • --on-error Choix du comportement quand une erreur survient lors de la révoquation de plusieurs fichiers. [string] [choices: "ignore", "warn", "fail"] [default: "fail"]
  • --on-non-seald Choix du comportement si un fichier n'est pas un fichier Seald lors de la révoquation de plusieurs fichiers. [string] [choices: "ignore", "warn", "fail"] [default: "warn"]
  • --parallel Nombre de processus d'ajout de destinataires lors d'une opération sur plusieurs fichiers. [number] [default: 10]

get-info

La commande get-info permet d'afficher les informations sur un fichier chiffré. Ces information sont :

  • les destinataires.
  • les destinataires révoqué.
  • Accusé de lecture.

Cette opération nécessite d'avoir un compte et une équipe.

seald get-info --file <file_path>

Exemple

Afficher les informations d'un fichier :

seald get-info --file chemin/fichier.pdf.shtml

Options

  • --input, -f, --file, --files, -i Chemin du fichier chiffré. [string] [required]

watch-encrypt

Surveille un dossier, et chiffre tous les fichiers écrits dans ce dossier. Les fichiers chiffrés sont écrits dans un dossier de destination. L'arborescence est conservée.

seald watch-encrypt --input <input_folder_path> --output <output_folder_path> [--remove] [--existing] [--recipients-ids <...recipients_ids>] [--recipients-emails <...recipients_emails>] [--recipients-emails-file <recipients_emails_file>]

Options

  • --input, -i Dossier à surveiller [string] [required]
  • --output, -o Dossier de destination des fichiers chiffrés [string] [required]
  • --remove, -r Supprimer les fichiers en clair après chiffrement. [boolean]
  • --existing, -e Chiffrer les fichiers déjà existant dans le dossier. [boolean]
  • --retries Si le système de fichier à une erreur, retenter ce nombre de fois (les erreurs autres que celles du système de fichier) [number] [default: 3]
  • --recipients-ids, --uids IDs des destinataires Seald à ajouter. [array] [default: []]
  • --recipients-emails, --emails Emails des destinataires non Seald à ajouter. [array] [default: []]
  • --recipients-emails-file, --emails-file Chemin d'un fichier contenant les emails des destinataires. [string]
  • --on-same-file-name Comportement en cas de conflit sur le nom du fichier de sortie [string] [choices: "overwrite", "error", "increment", "skip"] [default: "error"]

Exemple

seald watch-encrypt -i chemin/dossierChiffre/ -o chemin/dossierClaire/ -r -e --uids 'AAuSHVJqTsYFZGofjmsg8g' --on-same-file-name=increment

Clé de récupération

create-backup-key

Créer une clé de récupération. Cette opération nécessite d'avoir un compte et une équipe.

seald create-backup-key [--device-name <device_name>] [--output <output_file>]

Options

  • --output, -o Fichier dans lequel sera exporté la clé. [string] [default: "./seald-cli-backup.seald_key"]
  • --device-name, -n Nom de la clé de sauvegarde. [string] [default: null]

Exemple

seald create-backup-key -o chemin/cle-de-recuperation.seald_key -n ma-cle-de-recuperation

load-backup-key

Utiliser une clé de récupération. Cette opération nécessite de ne pas avoir de compte créé.

seald load-backup-key --key <key_file> [--offline]

Options

  • --key, -k Fichier duquel charger la clé de récupération. [string] [required]
  • --offline Ne pas tenter de récupérer les données du compte en ligne après avoir chargé la clé de récupération. [boolean]

Exemple

seald load-backup-key --key cle-de-recuperation.seald_key --offline

Options

Aide

Une aide peut être affichée en CLI en utilisant l'option --help

L'option --version retourne la version de Seald actuellement installée.

Niveau de log

Trois niveaux de log sont disponibles via l'ajout d'un des arguments suivants :

  • --verbose, -v Niveau de log par défaut.
  • --silly Afficher tous les logs.
  • --silent Niveau minimal de logs.

Advanced options

Ces options ne sont pas disponible pour l'application bureau.

Options

  • --seald-dir Chemin de la base de donnée. [string] [default: "$HOME/.seald-cli"]
  • --key-size Spécifie la taille en bits des clés RSA utilisées. [number] [choices: 1024, 2048, 4096] [default: 4096]

Proxy

Si Seald est exécuté depuis un poste devant se connecter à un proxy pour avoir accès à internet, il est possible de passer un argument --proxy <url>.