diff options
author | Andreas Ebner <a.e.bner@web.de> | 2019-10-07 11:48:07 +0200 |
---|---|---|
committer | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2019-10-07 12:18:42 +0200 |
commit | 1d468ecabd6c2ee5c0eae672292efa0f51bc9e48 (patch) | |
tree | 6b527980752f9603945e070c8187bfbb06232b6f /src/abd/test_abd_verify.sh | |
parent | 5cc45c7ee6a3ac522e5a1f58010d4efdf4fd102f (diff) | |
download | gnunet-1d468ecabd6c2ee5c0eae672292efa0f51bc9e48.tar.gz gnunet-1d468ecabd6c2ee5c0eae672292efa0f51bc9e48.zip |
Renamed credential service to abd, replaced all related functions, parameters, etc
Diffstat (limited to 'src/abd/test_abd_verify.sh')
-rwxr-xr-x | src/abd/test_abd_verify.sh | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/src/abd/test_abd_verify.sh b/src/abd/test_abd_verify.sh new file mode 100755 index 000000000..9ece91c62 --- /dev/null +++ b/src/abd/test_abd_verify.sh | |||
@@ -0,0 +1,87 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | trap "gnunet-arm -e -c test_abd_lookup.conf" SIGINT | ||
3 | |||
4 | LOCATION=$(which gnunet-config) | ||
5 | if [ -z $LOCATION ] | ||
6 | then | ||
7 | LOCATION="gnunet-config" | ||
8 | fi | ||
9 | $LOCATION --version 1> /dev/null | ||
10 | if test $? != 0 | ||
11 | then | ||
12 | echo "GNUnet command line tools cannot be found, check environmental variables PATH and GNUNET_PREFIX" | ||
13 | exit 77 | ||
14 | fi | ||
15 | |||
16 | rm -rf `gnunet-config -c test_abd_lookup.conf -s PATHS -o GNUNET_HOME -f` | ||
17 | |||
18 | # (1) Service.user -> GNU.project.member | ||
19 | # (2) GNU.project -> GNUnet | ||
20 | # (3) GNUnet.member -> GNUnet.developer | ||
21 | # (4) GNUnet.member -> GNUnet.user | ||
22 | # (5) GNUnet.developer -> Alice | ||
23 | |||
24 | |||
25 | which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 30" | ||
26 | gnunet-arm -s -c test_abd_lookup.conf | ||
27 | gnunet-identity -C service -c test_abd_lookup.conf | ||
28 | gnunet-identity -C alice -c test_abd_lookup.conf | ||
29 | gnunet-identity -C gnu -c test_abd_lookup.conf | ||
30 | gnunet-identity -C gnunet -c test_abd_lookup.conf | ||
31 | |||
32 | GNU_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep gnu | grep -v gnunet | awk '{print $3}') | ||
33 | ALICE_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep alice | awk '{print $3}') | ||
34 | GNUNET_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep gnunet | awk '{print $3}') | ||
35 | SERVICE_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep service | awk '{print $3}') | ||
36 | |||
37 | USER_ATTR="user" | ||
38 | GNU_PROJECT_ATTR="project" | ||
39 | MEMBER_ATTR="member" | ||
40 | DEVELOPER_ATTR="developer" | ||
41 | DEV_ATTR="developer" | ||
42 | TEST_CREDENTIAL="mygnunetcreds" | ||
43 | |||
44 | gnunet-identity -d | ||
45 | |||
46 | # (1) A service assigns the attribute "user" to all entities that have been assigned "member" by entities that werde assigned "project" from GNU | ||
47 | gnunet-abd --createIssuerSide --ego=service --attribute="$USER_ATTR" --subject="$GNU_KEY $GNU_PROJECT_ATTR.$MEMBER_ATTR" --ttl="2019-12-12 10:00:00" -c test_abd_lookup.conf | ||
48 | gnunet-namestore -D -z service | ||
49 | |||
50 | # (2) GNU recognized GNUnet as a GNU project and delegates the "project" attribute | ||
51 | gnunet-abd --createIssuerSide --ego=gnu --attribute="$GNU_PROJECT_ATTR" --subject="$GNUNET_KEY" --ttl="2019-12-12 10:00:00" -c test_abd_lookup.conf | ||
52 | gnunet-namestore -D -z gnu | ||
53 | |||
54 | # (3+4) GNUnet assigns the attribute "member" to all entities gnunet has also assigned "developer" or "user" | ||
55 | gnunet-abd --createIssuerSide --ego=gnunet --attribute="$MEMBER_ATTR" --subject="$GNUNET_KEY $DEVELOPER_ATTR" --ttl="2019-12-12 10:00:00" -c test_abd_lookup.conf | ||
56 | gnunet-abd --createIssuerSide --ego=gnunet --attribute="$MEMBER_ATTR" --subject="$GNUNET_KEY $USER_ATTR" --ttl="2019-12-12 10:00:00" -c test_abd_lookup.conf | ||
57 | gnunet-namestore -D -z gnunet | ||
58 | |||
59 | # (5) GNUnet signes the delegate and Alice stores it | ||
60 | SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=gnunet --attribute=$DEV_ATTR --subject=$ALICE_KEY --ttl="2019-12-12 10:00:00"` | ||
61 | gnunet-abd --createSubjectSide --ego=alice --import="$SIGNED" --private | ||
62 | gnunet-namestore -D -z alice | ||
63 | |||
64 | # Starting to resolve | ||
65 | echo "+++ Starting to Resolve +++" | ||
66 | |||
67 | DELS=`$DO_TIMEOUT gnunet-abd --collect --issuer=$SERVICE_KEY --attribute=$USER_ATTR --ego=alice --backward -c test_abd_lookup.conf | paste -d, -s - -` | ||
68 | echo $DELS | ||
69 | echo gnunet-abd --verify --issuer=$SERVICE_KEY --attribute=$USER_ATTR --subject=$ALICE_KEY --delegate=\'$DELS\' --backward -c test_abd_lookup.conf | ||
70 | gnunet-abd --verify --issuer=$SERVICE_KEY --attribute=$USER_ATTR --subject=$ALICE_KEY --delegate="$DELS" --backward -c test_abd_lookup.conf | ||
71 | |||
72 | RES=$? | ||
73 | |||
74 | # Cleanup properly | ||
75 | gnunet-namestore -z alice -d -n "@" -t DEL -c test_abd_lookup.conf | ||
76 | gnunet-namestore -z gnu -d -n $GNU_PROJECT_ATTR -t ATTR -c test_abd_lookup.conf | ||
77 | gnunet-namestore -z gnunet -d -n $MEMBER_ATTR -t ATTR -c test_abd_lookup.conf | ||
78 | gnunet-namestore -z service -d -n $USER_ATTR -t ATTR -c test_abd_lookup.conf | ||
79 | gnunet-arm -e -c test_abd_lookup.conf | ||
80 | |||
81 | if [ "$RES" == 0 ] | ||
82 | then | ||
83 | exit 0 | ||
84 | else | ||
85 | echo "FAIL: Failed to verify credential." | ||
86 | exit 1 | ||
87 | fi | ||