123456789101112131415161718192021222324252627282930313233 |
- #!/bin/sh
- members_file=$1
- [ "$members_file" = "" ] && echo "members file not specified" && exit 1
- # read member from client
- read member
- # lookup user
- secret=$(cat $members_file | grep $member | sed 's/;/\n/g' | sed -n 2p)
- # when user does not exists, exit with message
- if [ "$secret" = "" ]; then
- echo "user does not exist"
- exit 1
- fi
- # compute random challenge
- challenge=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 3 | head -n 1)
- # communicate challenge to client
- echo $challenge
- # read his response
- read response
- # check whether response is what should be expected
- if [ "$response" != "$(echo $secret$challenge | sha256sum)" ]; then
- echo "faulty"
- exit 1
- fi
|