fcoin/scripts/certs.sh
2017-03-01 08:48:53 -08:00

61 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
dir=$(dirname "$(which "$0")")
url='https://raw.githubusercontent.com/nodejs/node/master/src/node_root_certs.h'
json=$(curl -s "$url")
sha256() {
cat | openssl dgst -sha256 -hex | sed 's/^(stdin)= //'
}
getcerts() {
local buf=''
echo "$json" | sed 's/\\/\\\\/g' | while read line; do
if echo "$line" | grep 'BEGIN CERT' > /dev/null; then
buf="$line"
continue
fi
if echo "$line" | grep 'END CERT' > /dev/null; then
buf="$buf$line"
echo "$buf" | sed 's/"//g' | sed 's/,//g'
continue
fi
buf="$buf$line"
done
}
gethashes() {
local buf=''
echo "$json" | sed 's/\\n/:/g' | while read line; do
if echo "$line" | grep 'BEGIN CERT' > /dev/null; then
buf="$line"
continue
fi
if echo "$line" | grep 'END CERT' > /dev/null; then
buf="$buf$line"
echo "$buf" \
| sed 's/"//g' \
| sed 's/,//g' \
| tr ':' '\n' \
| openssl x509 -outform DER \
| sha256
continue
fi
buf="$buf$line"
done
}
tojs() {
local data=$(cat)
local body=$(echo "$data" | head -n -1)
local last=$(echo "$data" | tail -n 1)
echo 'module.exports = ['
echo "$body" | while read line; do
echo " '${line}',"
done
echo " '${last}'"
echo '];'
}
gethashes | tojs > "${dir}/../lib/bip70/certs.js"