]> Cypherpunks.ru repositories - govpn.git/blob - utils/newclient.sh
Use Argon2d PHC winner instead of PBKDF2
[govpn.git] / utils / newclient.sh
1 #!/bin/sh -e
2
3 [ -n "$1" ] || {
4     cat <<EOF
5 Example script for creating new user peer for GoVPN.
6 It asks for passphrase, generates verifier and shows you example
7 JSON entry for server configuration.
8
9 Usage: $0 <username>
10 EOF
11     exit 1
12 }
13
14 username=$1
15 umask 077
16 passphrase=$(mktemp)
17 $(dirname $0)/storekey.sh $passphrase
18 verifier=$(govpn-verifier -key $passphrase)
19 rm -f $passphrase
20 verifierS=$(echo $verifier | sed 's/^\(.*\) .*$/\1/')
21 verifierC=$(echo $verifier | sed 's/^.* \(.*\)$/\1/')
22 echo
23
24 cat <<EOF
25 Your client verifier is: $verifierC
26
27 Place the following JSON configuration entry on the server's side:
28
29     "$username": {
30         "up": "/path/to/up.sh",
31         "verifier": "$verifierS"
32     }
33
34 Verifier was generated with:
35
36     $(dirname $0)/storekey.sh /tmp/passphrase
37     govpn-verifier -key /tmp/passphrase
38
39 Create up.sh script that will output on the first line TAP interface
40 name that must be used for the peer. For example:
41
42     % umask 077
43     % ed /path/to/up.sh
44     a
45     #!/bin/sh
46     echo tap0
47     .
48     wq
49     20
50     % chmod +x /path/to/up.sh
51 EOF