Add deletemsg.sh script to delete a message by ID.

This commit is contained in:
poka 2020-11-05 02:57:54 +01:00
parent ee437f07ba
commit 92fdf87b3a
2 changed files with 64 additions and 1 deletions

62
deletemsg.sh Executable file
View File

@ -0,0 +1,62 @@
#!/bin/bash
# ###
# Supprimer un message Cesium+
# ###
[[ ! -f .env ]] && cp .env.template .env
source .env
REGEX_PUBKEYS="[a-zA-Z0-9]{42,44}"
# Parse options
declare -a args=($@)
for ((i=0; i<${#args[*]}; ++i))
do
case ${args[$i]} in
-t|--test) file="test.txt"
recipient=$issuer;;
-id|--id) id="${args[$i+1]}"
[[ -z $id ]] && echo "Veuillez préciser un ID de message." && 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;;
esac
done
if [[ -z $id ]]; then
read -p "ID de message: " ID
fi
if [[ -z $issuer ]]; then
read -p "Émetteur: " issuer
fi
if [[ -z $dunikey ]]; then
read -p "Fichier de trousseau: " dunikey
fi
[[ -z $(grep -Eo $REGEX_PUBKEYS <<<$issuer) ]] && echo "Le format de la clé publique de l'émetteur est invalide." && exit 1
times=$(date -u +'%s')
# Fabrication du hash
hash="{\"version\":2,\"index\":\"message\",\"type\":\"inbox\",\"id\":\"$id\",\"issuer\":\"$issuer\",\"time\":$times}"
hash=$(echo -n "$hash" | sha256sum | cut -d ' ' -f1 | awk '{ print toupper($0) }')
# Fabrication de la signature
signature=$(echo -n "$hash" | ./natools.py sign -f pubsec -k $dunikey --noinc -O 64)
# Affichage du JSON final
echo "{
\"version\": 2,
\"index\": \"message\",
\"type\": \"inbox\",
\"id\": \"$id\",
\"issuer\": \"$issuer\",
\"time\": $times,
\"hash\": \"$hash\",
\"signature\": \"$signature\"
}"
# Envoi du document
curl -X POST "$pod/history/delete" -d "{\"version\":2,\"index\":\"message\",\"type\":\"inbox\",\"id\":\"$id\",\"issuer\":\"$issuer\",\"time\":$times,\"hash\":\"$hash\",\"signature\":\"$signature\"}"

View File

@ -60,6 +60,7 @@ if [[ -z $dunikey ]]; then
fi
[[ -z $(grep -Eo $REGEX_PUBKEYS <<<$recipient) ]] && echo "Le format de la clé publique du destinataire est invalide." && exit 1
[[ -z $(grep -Eo $REGEX_PUBKEYS <<<$issuer) ]] && echo "Le format de la clé publique de l'émetteur 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)
@ -91,5 +92,5 @@ echo "{
"signature" : \"$signature\"
}"
# Envoi du document à
# Envoi du document
curl -X POST "$pod/message/inbox" -d "{\"issuer\":\"$issuer\",\"recipient\":\"$recipient\",\"title\":\"$title\",\"content\":\"$content\",\"time\":$times,\"nonce\":\"$nonce\",\"version\":2,\"hash\":\"$hash\",\"signature\":\"$signature\"}"