-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcheck_ssss.sh
executable file
·139 lines (126 loc) · 4.41 KB
/
check_ssss.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#!/bin/bash
#################################################################### check_ssss.sh
# VERIFY SHAMIR KEY CONCORDANCE and connect player
################################################################################
# Author: Fred (DsEx1pS33vzYZg4MroyBV9hCw98j1gtHEhwiZ5tK7ech)
# Version: 1.0
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
###############################################################################
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
ME="${0##*/}"
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
export PATH=$HOME/.astro/bin:$HOME/.local/bin:$PATH
source ${MY_PATH}/.env
[[ -z $myDUNITER ]] && myDUNITER="https://g1.cgeek.fr" # DUNITER
[[ -z $myCESIUM ]] && myCESIUM="https://g1.data.e-is.pro" # CESIUM+
[[ -z $ipfsNODE ]] && ipfsNODE="http://127.0.0.1:8080" # IPFS
# Vérifier le nombre d'arguments
if [ "$#" -ne 3 ]; then
echo "Usage: $0 <cardns> <ssss> <zerocard>"
exit 1
fi
# Récupération des arguments
CARDNS=$1
SSSS=$2
ZEROCARD=$3
[[ -z $ZEROCARD ]] && ZEROCARD=$MOATS
# Définir le chemin du fichier HTML de sortie
HTML_OUTPUT="${MY_PATH}/tmp/result_${CARDNS}.html"
# QUICK Validation du SSSS 3-c9ac213472a72bfd1ea1a7780f18914.....
if [[ "$SSSS" =~ ^3-[a-f0-9]{101,} ]]; then
VALID="VALID"
else
VALID="INVALID"
fi
[ -z $(${MY_PATH}/tools/g1_to_ipfs.py ${ZEROCARD} 2>/dev/null) ] && VALID="INVALID"
## GET CARDNS
echo "GETTING CARDNS ${CARDNS} CARDPORTAL LOCATION.........."
CARDPORTAL=$(ipfs name resolve /ipns/${CARDNS})
if [[ ! -z $CARDPORTAL ]]; then
echo "CARDPORTAL=$CARDPORTAL"
LS=$(ipfs ls ${CARDPORTAL})
[ -z $LS ] \
&& VALID="$VALID : CARDNS IS A FILE" \
|| echo VALID="$VALID : CARDNS IS A DIRECTORY ${LS}"
## ipfs ls... todo get html from station curl
fi
## TRY to join SSSS with CAPTAIN part
# Find CARDNS in local accounts IPNS12D
MEMBERPUB=$(grep -h -r -l --dereference "$CARDNS" ${MY_PATH}/pdf/ | grep IPNS12D | rev | cut -d '/' -f 2 | rev)
echo "MEMBERPUB=$MEMBERPUB"
## CAPTAIN DECRYPT MIDDLE PART ${MY_PATH}/pdf/${PUBKEY}/ssss.mid.captain.enc
${MY_PATH}/tools/natools.py decrypt -f pubsec \
-i ${MY_PATH}/pdf/${MEMBERPUB}/ssss.mid.captain.enc \
-k ~/.zen/game/players/.current/secret.dunikey \
-o ${MY_PATH}/tmp/${ZEROCARD}.ssss.mid
PART2=$(cat ${MY_PATH}/tmp/${ZEROCARD}.ssss.mid)
echo "SSSS + CAPTAIN PART2 COMBINE..."
disco=$(echo "$PART2
$SSSS" | ssss-combine -t 2 -q)
[ $? -eq 0 ] \
&& VALID="$VALID *** ZEROCARD CONNECTED ***" \
|| VALID="$VALID ERROR SSSS DECODING SSSS ERROR"
VALID="$VALID $disco"
## CHECK ZEROCARD SALT PEPPER
# Générer un fichier HTML de résultat
cat <<EOF > "$HTML_OUTPUT"
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SSSS Check Result</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: black;
text-align: center;
padding: 50px;
color: white;
margin: 0;
}
.container {
background-color: rgba(255, 255, 255, 0.1);
padding: 20px;
border-radius: 8px;
box-shadow: 0px 0px 10px 0px #00000033;
display: inline-block;
max-width: 90%; /* Limite la largeur */
margin: auto; /* Centre le conteneur */
}
h1 {
color: #FFD700; /* Couleur dorée */
}
.result {
font-size: 1.5em; /* Augmenter la taille de la police pour les résultats */
margin-top: 20px;
}
.valid {
color: #00FF00; /* Vert */
}
.invalid {
color: #FF0000; /* Rouge */
}
.highlight {
background: linear-gradient(90deg, #FF4500, #FFD700, #32CD32);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
</style>
</head>
<body>
<div class="container">
<h1 class="highlight">SSSS Key Validation Result</h1>
<h2>ZEROCARD : $ZEROCARD</h2>
<p><strong>Card NS:</strong> $CARDNS</p>
<div class="result">
<span class="${VALID,,}">The SSSS Key is $VALID</span>
</div>
</div>
</body>
</html>
EOF
# Afficher le chemin du fichier HTML en sortie pour que le script Python puisse le capturer
echo "$HTML_OUTPUT"
exit 0