Szafir component installer for Chromium on Linux
Jacek Kowalski
2018-03-01 33405b294844e84a5257afbcdc438bb449552993
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/bin/bash
 
set -e
 
echoCyan() {
    echo -n -e "\e[96m"
    echo -n "$@"
    echo -e "\e[0m"
}
 
checkCommand() {
    echo "$@..."
    command -v "$@" > /dev/null 2>&1 || { echo "$@ not found"; exit 1; }
}
 
echoCyan "Checking prerequisites..."
checkCommand wget
checkCommand 7z
checkCommand sha256sum
checkCommand sed
checkCommand java
echo
 
echoCyan "Creating temporary directory..."
TEMP_DIR="`mktemp -d`"
if [ -z "${TEMP_DIR}" -o ! -d "${TEMP_DIR}" ]; then
    echo "Could not create temporary directory!"
    exit 1
fi
echo "${TEMP_DIR}"
cd "${TEMP_DIR}"
echo
 
cleanup() {
    echoCyan "Cleaning up..."
    rm -rfv "${TEMP_DIR}"
}
trap cleanup EXIT
 
echoCyan "Downloading Szafir Host...."
wget -N "http://www.elektronicznypodpis.pl/gfx/elektronicznypodpis/pl/defaultstronaopisowa/146/1/1/szafirhost.msi"
echo
 
echoCyan "Verifying checksum..."
echo "26326be947794499266627684e9309941f17780e3a7bab7e5bf48b2417d44842    szafirhost.msi" > SHA256SUM
sha256sum -c SHA256SUM
echo
 
echoCyan "Extracting data..."
7z x szafirhost.msi
echo
 
echoCyan "Preparing Chrome Messaging Host adapter..."
CHROME_DIR=szafir-native-messaging-host
mkdir "${CHROME_DIR}"
INSTALL_DIR="${HOME}/.config/chromium/NativeMessagingHosts"
ESCAPED_INSTALL_DIR="${INSTALL_DIR////\\/}"
cp filF5D04DB8D607CF8ECF8B704134B04A67 "${CHROME_DIR}/SzafirHost.jar"
cp filE5B77E2AFEA85AA1CA660D45949DB769 "${CHROME_DIR}/pl.com.kir.szafirhost.json"
sed -i "s/szafir-native-messaging-host\\.bat/${ESCAPED_INSTALL_DIR}\\/szafir-native-messaging-host.sh/" "${CHROME_DIR}/pl.com.kir.szafirhost.json"
cat <<'EOF' > "${CHROME_DIR}/szafir-native-messaging-host.sh"
#!/bin/bash
 
DIR=`dirname "$0"`
cd "$DIR"
java -jar SzafirHost.jar "$@"
EOF
chmod +x "${CHROME_DIR}/szafir-native-messaging-host.sh"
echo
 
echoCyan "Installing Chrome Messaging Host adapter..."
mkdir -p "${INSTALL_DIR}"
cp -Rfv "${CHROME_DIR}"/* "${INSTALL_DIR}/"
echo
 
cleanup
trap - EXIT
echo
 
echo -n -e "\e[92m"
echo -n "ALL DONE!"
echo -e "\e[0m"
echo
echo -n -e "\e[93m"
echo -n "Remember to copy your PKCS#11 library to /usr/lib!"
echo -e "\e[0m"
echo
echo "Eg. (pue.zus.pl):"
echo "sudo cp ~/local/proCertumSmartSign/libcryptoCertum3PKCS.so /usr/lib/"
echo "Eg. (wfirma.pl):"
echo "sudo cp ~/local/proCertumSmartSign/libcryptoCertum3PKCS.so /usr/lib/cryptoCertumPKCS11.dll"