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