github.com/simranvc/fabric-ca@v0.0.0-20191030094829-acc364294dde/scripts/fvt/staging/delegation_test.sh (about) 1 #!/bin/bash 2 # 3 # Copyright IBM Corp. All Rights Reserved. 4 # 5 # SPDX-License-Identifier: Apache-2.0 6 # 7 8 FABRIC_CA="$GOPATH/src/github.com/hyperledger/fabric-ca" 9 SCRIPTDIR="$FABRIC_CA/scripts/fvt" 10 TESTDATA="$FABRIC_CA/testdata" 11 KEYSTORE="/tmp/keyStore" 12 HTTP_PORT="3755" 13 RC=0 14 15 . $SCRIPTDIR/fabric-ca_utils 16 17 function enrollUser() { 18 local USERNAME=$1 19 local USERTYPE=$2 20 local ATTR=$3 21 mkdir -p $KEYSTORE/$USERNAME 22 export FABRIC_CA_HOME=$KEYSTORE/$REGISTRAR 23 OUT=$($SCRIPTDIR/register.sh -u $USERNAME -t $USERTYPE -a "$ATTR" -x $FABRIC_CA_HOME) 24 echo "$OUT" 25 PASSWD="$(echo $OUT | tail -n1 | awk '{print $NF}')" 26 echo "PASSWD: $PASSWD" 27 export FABRIC_CA_HOME=$KEYSTORE/$USERNAME 28 $SCRIPTDIR/enroll.sh -u $USERNAME -p $PASSWD -x $FABRIC_CA_HOME 29 } 30 31 function registerUser() { 32 local USERNAME=$1 33 local USERTYPE=$2 34 local ATTR=$3 35 mkdir -p $KEYSTORE/$USERNAME 36 export FABRIC_CA_HOME=$KEYSTORE/$REGISTRAR 37 $SCRIPTDIR/register.sh -u $USERNAME -t $USERTYPE -a "$ATTR" -x $FABRIC_CA_HOME 2>&1 38 test $? -ne 0 && return 1 39 } 40 41 42 cd $TESTDATA 43 python -m SimpleHTTPServer $HTTP_PORT & 44 HTTP_PID=$! 45 pollSimpleHttp 46 echo $HTTP_PID 47 trap "kill $HTTP_PID; CleanUp" INT 48 49 REGISTRAR="admin" 50 REGIRSTRARPWD="adminpw" 51 export FABRIC_CA_DEBUG 52 mkdir -p $KEYSTORE/$REGISTRAR 53 export FABRIC_CA_HOME=$KEYSTORE/$REGISTRAR 54 55 #for driver in sqlite3 postgres mysql; do 56 for driver in sqlite3 ; do 57 $SCRIPTDIR/fabric-ca_setup.sh -R -x $FABRIC_CA_HOME 58 $SCRIPTDIR/fabric-ca_setup.sh -I -S -X -d $driver 59 if test $? -ne 0; then ErrorMsg "server setup failed"; continue; fi 60 $SCRIPTDIR/enroll.sh -u $REGISTRAR -p $REGIRSTRARPWD -x $FABRIC_CA_HOME 61 if test $? -ne 0; then ErrorMsg "Failed to enroll $REGISTRAR" continue; fi 62 63 64 for DEL in client peer validator auditor; do 65 # admin can enroll anybody 66 REGISTRAR="admin" 67 enrollUser A_$DEL $DEL "[{\"name\":\"hf.Registrar.Roles\",\"value\":\"${DEL}\"},{\"name\":\"hf.Registrar.DelegateRoles\", \"value\": \"${DEL}\"}]" 68 if test $? -ne 0; then ErrorMsg "enroll A_$DEL failed"; continue; fi 69 enrollUser Aleaker_$DEL $DEL "[{\"name\":\"hf.Registrar.Roles\",\"value\":\"${DEL}\"}]" 70 if test $? -ne 0; then ErrorMsg "enroll Aleaker_$DEL failed"; continue; fi 71 72 for REG in client peer validator auditor; do 73 # A_$DEL can enroll and/or delegate $DEL 74 REGISTRAR="Aleaker_$DEL" 75 enrollUser Dleaker_$DEL$REG $REG "[{\"name\":\"hf.Registrar.Roles\",\"value\":\"${REG}\"},{\"name\":\"hf.Registrar.DelegateRoles\", \"value\": \"${REG}\"}]" 76 test $? -eq 0 && ErrorMsg "Aleaker_$DEL enrolled a delegate" 77 REGISTRAR="A_$DEL" 78 enrollUser D_$DEL$REG $REG "[{\"name\":\"hf.Registrar.Roles\",\"value\":\"${REG}\"}]" 79 rc=$? 80 if test "$REG" == "$DEL" -a $rc -ne 0; then ErrorMsg "register D_$DEL$REG failed" 81 elif test "$REG" != "$DEL" -a $rc -eq 0; then ErrorMsg "register D_$DEL$REG succeeded" 82 elif test "$REG" != "$DEL" -a $rc -ne 0; then continue; fi 83 for ENR in client peer validator auditor; do 84 # D_$DEL$REG can enroll only $REG 85 REGISTRAR="D_$DEL$REG" 86 enrollUser E_$DEL$REG$ENR $ENR 87 rc=$? 88 if test "$REG" == "$ENR" -a $rc -ne 0; then ErrorMsg "register E_$DEL$REG$ENR failed" 89 elif test "$REG" != "$ENR" -a $rc -eq 0; then ErrorMsg "register E_$DEL$REG$ENR succeeded" 90 elif test "$REG" != "$ENR" -a $rc -ne 0; then continue; fi 91 for XXX in client peer validator auditor; do 92 # E_$DEL$REG$ENR can't enroll anyone 93 REGISTRAR="E_$DEL$REG$ENR" 94 registerUser X_$DEL$REG$ENR$XXX $XXX "[{\"name\":\"type\",\"value\":\"value\"}]" 95 if test $? -eq 0; then ErrorMsg "X_$XXX registered a user"; continue; fi 96 done 97 done 98 done 99 done 100 $SCRIPTDIR/fabric-ca_setup.sh -R -x $FABRIC_CA_HOME 101 done 102 kill $HTTP_PID 103 wait $HTTP_PID 104 CleanUp "$RC" 105 exit $RC