Use statement exprs instead of local function
[oweals/gnunet.git] / src / gns / gnunet-gns-proxy-setup-ca
index d0b07887b0d7248657291148c3efb29ed4eb4b97..692cca974f612a5c945f8be42c52d255abf433fe 100644 (file)
@@ -2,13 +2,18 @@
 # This shell script will generate an X509 certificate for your gnunet-gns-proxy
 # and install it (for both GNUnet and your browser).
 #
-echo "Generating CA"
+if ! which certtool > /dev/null
+then
+  echo "'certtool' command not found. Please install it."
+  exit 1
+fi
 
+echo "Generating CA"
 options=''
 while getopts "c:" opt; do
   case $opt in
     c)
-      options+="-c $OPTARG"
+      options="$options -c $OPTARG"
       ;;
     \?)
       echo "Invalid option: -$OPTARG" >&2
@@ -27,30 +32,39 @@ GNSCANO=`mktemp /tmp/gnscakeynoencXXXXXX.pem`
 GNS_CA_CERT_PEM=`gnunet-config -s gns-proxy -o PROXY_CACERT -f $options`
 mkdir -p `dirname $GNS_CA_CERT_PEM`
 
-openssl req -new -x509 -days 3650 -extensions v3_ca -keyout $GNSCAKY -out $GNSCERT -subj "/C=ZZ/L=World/O=GNU/OU=GNUnet/CN=GNS CA/emailAddress=bounce@gnunet.org" -passout pass:"GNU Name System"
+openssl req -new -x509 -days 3650 -extensions v3_ca -keyout $GNSCAKY -out $GNSCERT -subj "/C=ZZ/L=World/O=GNU/OU=GNUnet/CN=GNS Proxy CA/emailAddress=bounce@gnunet.org" -passout pass:"GNU Name System"
 
 echo "Removing passphrase from key"
 openssl rsa -passin pass:"GNU Name System" -in $GNSCAKY -out $GNSCANO
 
+echo "Making private key available to gnunet-gns-proxy"
 cat $GNSCERT $GNSCANO > $GNS_CA_CERT_PEM
 
 echo "Importing CA into browsers"
-for f in ~/.mozilla/firefox/*.default
+for f in ~/.mozilla/firefox/*.default/
 do
   if [ -d $f ]; then
-    echo "Importing CA info Firefox $f"
-    certutil -D -n "GNS Proxy CA" -d ~/.mozilla/firefox/*.default >/dev/null 2&>1
-    certutil -A -n "GNS Proxy CA" -t CT,, -d ~/.mozilla/firefox/*.default < $GNSCERT
+    echo "Importing CA info Firefox at $f/"
+# delete old certificate (if any)
+    certutil -D -n "GNS Proxy CA" -d "$f" >/dev/null 2>/dev/null
+# add new certificate
+    certutil -A -n "GNS Proxy CA" -t CT,, -d "$f" < $GNSCERT
   fi
 done
 
-if [ -d ~/.pki/nssdb ]; then
-  echo "Importing CA into Chrome"
-  certutil -D -n "GNS Proxy CA" -d ~/.pki/nssdb >/dev/null 2&>1
-  certutil -A -n "GNS Proxy CA" -t CT,, -d ~/.pki/nssdb < $GNSCERT
+if [ -d ~/.pki/nssdb/ ]; then
+  echo "Importing CA into Chrome at ~/.pki/nssdb/"
+# delete old certificate (if any)
+  certutil -D -n "GNS Proxy CA" -d ~/.pki/nssdb/ >/dev/null 2>/dev/null
+# add new certificate
+  certutil -A -n "GNS Proxy CA" -t CT,, -d ~/.pki/nssdb/ < $GNSCERT
 fi
 
+echo "Cleaning up."
+rm -f $GNSCAKY $GNSCANO $GNSCERT
 
-rm $GNSCAKY $GNSCANO $GNSCERT
-
-echo "You can now start gnunet-gns-proxy and configure your browser to use a SOCKS proxy on port 7777"
+echo "==================================="
+echo "You can now start gnunet-gns-proxy."
+echo "Afterwards, configure your browser "
+echo " to use a SOCKS proxy on port 7777."
+echo "==================================="