1
+ data=./demo_data.sh
2
+
1
3
#! /bin/bash
2
4
3
- trap " exit" INT TERM ERR
4
- trap " kill 0" EXIT
5
+ # this should kill ganache-cli after calling exit, but it didn't work. Idk why
6
+ # trap "exit" INT TERM ERR
7
+ # trap "kill 0" EXIT
5
8
6
9
# command and option to call ganache-cli without blocking the shell in linux environments
7
10
shell=sh
@@ -14,22 +17,64 @@ if [[ "$OSTYPE" = "msys" ]]; then
14
17
fi
15
18
16
19
echo " Initalizing Ganache..."
17
-
18
20
$shell $option ganache-cli -a 10 -d -m " pumpkin immense certain snack please patch universe leisure reopen truth eight gown" -p 7545
19
21
20
22
sleep 3
21
23
read -p ' Choose milestone to test: ' milestone
22
24
25
+ source $data
26
+
23
27
case $milestone in
24
- 1) echo " Um" ;;
25
- 2) echo " dois" ;;
26
- 3) echo " três" ;;
27
- 4) echo " quatro" ;;
28
- 5) echo " cinco" ;;
29
- 6) echo " seis" ;;
30
- 7) echo " sete" ;;
31
- 8) echo " oito" ;;
32
- 9) echo " nove" ;;
33
- 10) echo " dez" ;;
34
- * ) echo " Opção Inválida!" ;;
28
+ 1) echo " mileston 1"
29
+
30
+ # admin inicia o sistema e cria os contratos
31
+ java -jar $1 --init http://127.0.0.1:7545 ${admin[name]} ${admin[email]} ${admin[privateKey]}
32
+
33
+ # certificador cria perfil e atributo, e publica ambos
34
+ java -jar $1 --create-user ${crm[name]} ${crm[email]} ${crm[privateKey]}
35
+ java -jar $1 --create-certifier
36
+ java -jar $1 --create-attributes atributo1 atributo2 atributo3
37
+ java -jar $1 --publish user certifier attributes
38
+
39
+ # usuário 1 - Bob, cria perfil e solicita concessão do atributo 1 (chave pessoal ABE)
40
+ java -jar $1 --create-user ${bob[name]} ${bob[email]} ${bob[privateKey]}
41
+ java -jar $1 --publish user
42
+ java -jar $1 --request-attribute ${crm[gid]} atributo1
43
+
44
+ # usuário 2 - Alice, cria perfil, recebe chaves públicas e criptografa um documento
45
+ java -jar $1 --create-user ${alice[name]} ${alice[email]} ${alice[privateKey]}
46
+ java -jar $1 --publish user
47
+ java -jar $1 --get-attributes ${crm[gid]} atributo1
48
+
49
+ echo " put a file inside Alice folder for encryption"
50
+ sleep 5
51
+
52
+ read -p " write file name in Alice folder for encryption: " filename
53
+ java -jar $1 --encrypt $filename atributo1 ${crm[gid]}
54
+ java -jar $1 --send $filename
55
+
56
+ # certificador recebe requisição de atributo e o concede ao Bob
57
+ java -jar $1 --load ${crm[gid]}
58
+ java -jar $1 --check-requests pending
59
+ java -jar $1 --yield-attributes ${bob[gid]} 0
60
+ java -jar $1 --send attributes ${bob[gid]}
61
+
62
+ # usuário 1 - Bob, de posse do atributo, o descriptografa
63
+ java -jar $1 --load ${bob[gid]}
64
+ java -jar $1 --check-requests ok
65
+ java -jar $1 --check-requests download
66
+ java -jar $1 --get-recordings ${alice[gid]} $filename
67
+ java -jar $1 --decrypt $filename ;;
68
+ 2) echo " dois" ;;
69
+ 3) echo " três" ;;
70
+ 4) echo " quatro" ;;
71
+ 5) echo " cinco" ;;
72
+ 6) echo " seis" ;;
73
+ 7) echo " sete" ;;
74
+ 8) echo " oito" ;;
75
+ 9) echo " nove" ;;
76
+ 10) echo " dez" ;;
77
+ * ) echo " Opção Inválida!" ;;
35
78
esac
79
+
80
+ exit
0 commit comments