From 326bc76911b27f2b8189b197a2a3f5ede18e3959 Mon Sep 17 00:00:00 2001 From: poka Date: Thu, 5 Nov 2020 02:10:04 +0100 Subject: [PATCH] Complete meca for default sending; Improve help; Edit README.md --- .env.template | 1 - README.md | 19 ++++++++++++------- sendmsg.sh | 25 +++++++++++++++++++------ 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/.env.template b/.env.template index 7cf8ceb..ef3a430 100644 --- a/.env.template +++ b/.env.template @@ -1,4 +1,3 @@ issuer="" # Clé publique Ḡ1 de l'émetteur du message -recipient="" # Clé publique Ḡ1 du destinataire du message dunikey="" # La clé privé Ḡ1 de l'émetteur, générable par Cesium au format PubSec pod="https://g1.data.duniter.fr" # Noeud Cecium+ utilisé pour l'envoi du message diff --git a/README.md b/README.md index 9c354cb..e56abce 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,19 @@ -# Dépendances à installer en amont: -- Debian 9/10 -- nodejs>8 (Pour JSON.Stringify simplement) +Ceci est un testeur simple pour l'envoi de messages Cesium + # Utilisation -Éditez le titre et le contenu du message de test dans helloworld si vous voulez. -Définissez votre clé publique, votre salt Ḡ1 au format PubSec. -Définissez la publique du destinataire. - ``` chmod u+x sendmsg.sh ./sendmsg.sh ``` + +## Options +./sendmsg.sh + Par défaut, demandez le titre, le contenu et le destinataire en mode interactif. + +Options: + -t Mode test: Utilise le fichier "test.txt" ainsi que le même destinataire que l'émetteur. + -f Lit le fichier avec le titre en première ligne et le contenu dans le reste du fichier pour le message. + -r Utilise comme destinataire du message. + -i Utilise comme émetteur du message. + -k Chemin vers le fichier de trousseau PubSec de l'émetteur. diff --git a/sendmsg.sh b/sendmsg.sh index ed3815a..f12542d 100755 --- a/sendmsg.sh +++ b/sendmsg.sh @@ -8,10 +8,16 @@ source .env # Help display helpOpt() { - echo -e "This is a simple tester for Cesium+ messages sender) - \rOptions: + echo -e "This is a simple tester for Cesium+ messages sending \r$0 - Default view show last day data in cumulative mode" + Default, ask title, content and recipient in interactive mode. + + \rOptions: + -t\t\t\t\tTest mode: Uses the \"test.txt\" file as well as the same recipient as the sender. + -f,--file \t\tRead the file with title in first line and content in rest of the file for the message. + -r,--recipient \tUses as recipient of the message. + -i,--issuer \tUses as issuer of the message. + -k,--key \t\tPath to the pubsec keychain file of the issuer." } REGEX_PUBKEYS="[a-zA-Z0-9]{42,44}" @@ -23,17 +29,18 @@ do case ${args[$i]} in -f|--file) file="${args[$i+1]}" [[ ! -f $file ]] && echo "Le fichier $file n'existe pas." && exit 1;; - -t|--test) file="test.txt";; + -t|--test) file="test.txt" + recipient=$issuer;; -r|--recipient) recipient="${args[$i+1]}" [[ -z $recipient ]] && echo "Veuillez préciser un destinataire." && exit 1;; + -i|--issuer) issuer="${args[$i+1]}" + [[ -z $issuer ]] && echo "Veuillez préciser un émetteur." && exit 1;; -k|--key) dunikey="${args[$i+1]}" [[ -z $dunikey ]] && echo "Veuillez préciser un fichier de trousseau." && exit 1;; -h|--help) helpOpt && exit 0;; esac done -[[ -z $(grep -Eo $REGEX_PUBKEYS <<<$recipient) ]] && echo "Le format de la clé publique du destinataire est invalide." && exit 1 - if [[ -z $file ]]; then read -p "Objet du message: " title read -p "Corps du message: " content @@ -42,6 +49,12 @@ else message=$(cat $file) fi +if [[ -z $recipient ]]; then + read -p "Destinataire: " recipient +fi + +[[ -z $(grep -Eo $REGEX_PUBKEYS <<<$recipient) ]] && echo "Le format de la clé publique du destinataire est invalide." && exit 1 + # Récupération et chiffrement du titre et du message title=$(head -n1 <<<$message | ./natools.py encrypt --pubsec -p $recipient -O 58) content=$(tail -n+2 <<<$message | ./natools.py encrypt --pubsec -p $recipient -O 58)