Szafir component installer for Chromium on Linux
Jacek Kowalski
2017-12-19 40c12dab8c8e932dc0673f2476ac78d63260dd0f
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...."
41 #wget -N "http://www.elektronicznypodpis.pl/gfx/elektronicznypodpis/pl/defaultstronaopisowa/146/1/1/szafirhost.msi"
42 cp /tmp/szafirhost.msi .
43 echo
44
45 echoCyan "Extracting data..."
46 7z x szafirhost.msi
47 echo
48
49 echoCyan "Verifying checksum..."
50 echo "26326be947794499266627684e9309941f17780e3a7bab7e5bf48b2417d44842    szafirhost.msi" > SHA256SUM
51 sha256sum -c SHA256SUM
52 echo
53
54 echoCyan "Preparing Chrome Messaging Host adapter..."
55 CHROME_DIR=szafir-native-messaging-host
56 mkdir "${CHROME_DIR}"
57 INSTALL_DIR="${HOME}/.config/chromium/NativeMessagingHosts"
58 ESCAPED_INSTALL_DIR="${INSTALL_DIR////\\/}"
59 cp filF5D04DB8D607CF8ECF8B704134B04A67 "${CHROME_DIR}/SzafirHost.jar"
60 cp filE5B77E2AFEA85AA1CA660D45949DB769 "${CHROME_DIR}/pl.com.kir.szafirhost.json"
61 sed -i "s/szafir-native-messaging-host\\.bat/${ESCAPED_INSTALL_DIR}\\/szafir-native-messaging-host.sh/" "${CHROME_DIR}/pl.com.kir.szafirhost.json"
62 cat <<'EOF' > "${CHROME_DIR}/szafir-native-messaging-host.sh"
63 #!/bin/bash
64
65 DIR=`dirname "$0"`
66 cd "$DIR"
67 java -jar SzafirHost.jar "$@"
68 EOF
69 chmod +x "${CHROME_DIR}/szafir-native-messaging-host.sh"
70 echo
71
72 echoCyan "Installing Chrome Messaging Host adapter..."
73 mkdir -p "${INSTALL_DIR}"
74 cp -Rfv "${CHROME_DIR}"/* "${INSTALL_DIR}/"
75 echo
76
77 cleanup
78 trap - EXIT
79 echo
80
81 echo -n -e "\e[92m"
82 echo -n "ALL DONE!"
83 echo -e "\e[0m"
84 echo
85 echo -n -e "\e[93m"
86 echo -n "Remember to copy your PKCS#11 library to /usr/lib!"
87 echo -e "\e[0m"
88 echo
89 echo "Eg.:"
90 echo "sudo cp ~/local/proCertumSmartSign/libcryptoCertum3PKCS.so /usr/lib/"