Skip to content

Commit 93af8e0

Browse files
committed
milestone 1 avaiable in demonstration script
1 parent e347526 commit 93af8e0

File tree

2 files changed

+87
-14
lines changed

2 files changed

+87
-14
lines changed

demo_data.sh

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
declare -A admin
2+
declare -A crm
3+
declare -A alice
4+
declare -A bob
5+
6+
admin[name]="admin"
7+
admin[email]="[email protected]"
8+
admin[address]="0xFae373E0BFfaE794fA818D749D6da38D4f7cA986"
9+
admin[gid]="admin-0xFae373E0BFfaE794fA818D749D6da38D4f7cA986"
10+
admin[privateKey]="e4d8c81796894ea5bf202e3a3204948dddd62f4d709c278bf8096898957be241"
11+
12+
crm[name]="CRM"
13+
crm[email]="[email protected]"
14+
crm[address]="0xFB7EAfB7fBdaA775d0D52fAaEBC525C1cE173EE0"
15+
crm[gid]="CRM-0xFB7EAfB7fBdaA775d0D52fAaEBC525C1cE173EE0"
16+
crm[privateKey]="e15b910f8c61580befebecff2d79abf38998035cbc317400a96c4736a424f6dc"
17+
18+
alice[name]="Alice"
19+
alice[email]="[email protected]"
20+
alice[address]="0xb038476875480BCE0D0FCf0991B4BB108A3FCB47"
21+
alice[gid]="Alice-0xb038476875480BCE0D0FCf0991B4BB108A3FCB47"
22+
alice[privateKey]="4237a475aa6579f2a0fc85d90cbcda1fad3db70391315a6c37b51de3a8cb503a"
23+
24+
bob[name]="Bob"
25+
bob[email]="[email protected]"
26+
bob[address]="0xF7908374b1a445cCf65F729887dbB695c918BEfc"
27+
bob[gid]="Bob-0xF7908374b1a445cCf65F729887dbB695c918BEfc"
28+
bob[privateKey]="ab0439882857ffb5859c1a3a6bf40a6848daeaab6605c873c3e425de53c2c4ab"

runDemo.sh

Lines changed: 59 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
data=./demo_data.sh
2+
13
#!/bin/bash
24

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
58

69
# command and option to call ganache-cli without blocking the shell in linux environments
710
shell=sh
@@ -14,22 +17,64 @@ if [[ "$OSTYPE" = "msys" ]]; then
1417
fi
1518

1619
echo "Initalizing Ganache..."
17-
1820
$shell $option ganache-cli -a 10 -d -m "pumpkin immense certain snack please patch universe leisure reopen truth eight gown" -p 7545
1921

2022
sleep 3
2123
read -p 'Choose milestone to test: ' milestone
2224

25+
source $data
26+
2327
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!" ;;
3578
esac
79+
80+
exit

0 commit comments

Comments
 (0)