From e5b9486c5298a9c375ffc4988b2e0f0347599657 Mon Sep 17 00:00:00 2001 From: 4s3ti <4s3ti@4s3ti.net> Date: Thu, 25 Aug 2022 00:27:55 +0200 Subject: [PATCH] fix(makeovpn): Remove expect dependency Remove dependency on expect Fix issue #1600 and #1601 --- auto_install/install.sh | 3 +- scripts/openvpn/makeOVPN.sh | 56 ++++--------------------------------- 2 files changed, 7 insertions(+), 52 deletions(-) diff --git a/auto_install/install.sh b/auto_install/install.sh index 8fed96b..aaddb49 100755 --- a/auto_install/install.sh +++ b/auto_install/install.sh @@ -1947,8 +1947,7 @@ installOpenVPN() { updatePackageCache fi - # Expect is used to feed easy-rsa with passwords - PIVPN_DEPS=(openvpn expect) + PIVPN_DEPS=(openvpn) installDependentPackages PIVPN_DEPS[@] } diff --git a/scripts/openvpn/makeOVPN.sh b/scripts/openvpn/makeOVPN.sh index 2e5d209..abd5c45 100755 --- a/scripts/openvpn/makeOVPN.sh +++ b/scripts/openvpn/makeOVPN.sh @@ -155,12 +155,8 @@ done keynoPASS() { # Build the client key - expect << EOF - set timeout -1 - set env(EASYRSA_CERT_EXPIRE) "${DAYS}" - spawn ./easyrsa build-client-full "${NAME}" nopass - expect eof -EOF + export EASYRSA_CERT_EXPIRE "${DAYS}" + ./easyrsa build-client-full "${NAME}" nopass cd pki || exit } @@ -252,51 +248,11 @@ keyPASS() { exit 1 fi - # Escape chars in PASSWD - PASSWD_UNESCAPED="${PASSWD}" + export EASYRSA_CERT_EXPIRE="${DAYS}" + ./easyrsa --passin=pass:"${PASSWD}" \ + --passout=pass:"${PASSWD}" \ + build-client-full "${NAME}" - PASSWD="${PASSWD//\\/\\\\}" - PASSWD="${PASSWD//\//\\\/}" - PASSWD="${PASSWD//\$/\\\$}" - PASSWD="${PASSWD//!/\\!}" - PASSWD="${PASSWD//\./\\\.}" - PASSWD="${PASSWD//\'/\\\'}" - PASSWD="${PASSWD//\"/\\\"}" - PASSWD="${PASSWD//*/\\*}" - PASSWD="${PASSWD//@/\\@}" - PASSWD="${PASSWD//#/\\#}" - PASSWD="${PASSWD//\£/\\\£}" - PASSWD="${PASSWD//%/\\%}" - PASSWD="${PASSWD//\^/\\\^}" - PASSWD="${PASSWD//\&/\\\&}" - PASSWD="${PASSWD//\(/\\\(}" - PASSWD="${PASSWD//\)/\\\)}" - PASSWD="${PASSWD//\-/\\\-}" - PASSWD="${PASSWD//\_/\\\_}" - PASSWD="${PASSWD//\+/\\\+}" - PASSWD="${PASSWD//\=/\\\=}" - PASSWD="${PASSWD//\[/\\\[}" - PASSWD="${PASSWD//\]/\\\]}" - PASSWD="${PASSWD//:/\\:}" - PASSWD="${PASSWD//\;/\\\;}" - PASSWD="${PASSWD//\|/\\\|}" - PASSWD="${PASSWD//\/\\\>}" - PASSWD="${PASSWD//\,/\\\,}" - PASSWD="${PASSWD//\~/\\\~}" - PASSWD="${PASSWD//\?/\\\?}" - PASSWD="${PASSWD//\{/\\\{}" - PASSWD="${PASSWD//\}/\\\}}" - - # Build the client key and then encrypt the key - expect << EOF - set timeout -1 - set env(EASYRSA_CERT_EXPIRE) "${DAYS}" - spawn ./easyrsa build-client-full "${NAME}" - expect "Enter PEM pass phrase" {sleep 0.1; send -- "${PASSWD}\r"} - expect "Verifying - Enter PEM pass phrase" {sleep 0.1; send -- "${PASSWD}\r"} - expect eof -EOF cd pki || exit }