Browse Source

Derive custom app seed (#500)

bitcoin-conf-clean
Luke Childs 4 years ago
committed by GitHub
parent
commit
bbaba69856
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 18
      scripts/app

18
scripts/app

@ -35,8 +35,22 @@ list_installed_apps() {
cat "${USER_FILE}" 2> /dev/null | jq -r 'if has("installedApps") then .installedApps else [] end | join("\n")' || true
}
# Deterministically derives 128 bits of cryptographically secure entropy
derive_entropy () {
identifier="${1}"
umbrel_seed=$(cat "${UMBREL_ROOT}/db/umbrel-seed/seed") || true
if [[ -z "$umbrel_seed" ]] || [[ -z "$identifier" ]]; then
>&2 echo "Missing derivation parameter, this is unsafe, exiting."
exit 1
fi
# We need `sed 's/^.* //'` to trim the "(stdin)= " prefix from some versions of openssl
printf "%s" "${identifier}" | openssl dgst -sha256 -hmac "${umbrel_seed}" | sed 's/^.* //'
}
# Check dependencies
check_dependencies docker-compose jq
check_dependencies docker-compose jq openssl
if [ -z ${1+x} ]; then
command=""
@ -85,11 +99,13 @@ compose() {
local app_base_compose_file="${UMBREL_ROOT}/apps/docker-compose.common.yml"
local app_compose_file="${app_dir}/docker-compose.yml"
local app_hidden_servive_file="${UMBREL_ROOT}/tor/data/app-${app}/hostname"
local app_entropy_identifier="app-${app}-seed"
export BITCOIN_DATA_DIR="${UMBREL_ROOT}/bitcoin"
export LND_DATA_DIR="${UMBREL_ROOT}/lnd"
export APP_DATA_DIR="${app_data_dir}"
export APP_HIDDEN_SERVICE="$(cat "${app_hidden_servive_file}" 2>/dev/null || echo "notyetset.onion")"
export APP_SEED=$(derive_entropy "${app_entropy_identifier}")
docker-compose \
--env-file "${env_file}" \
--project-name "${app}" \

Loading…
Cancel
Save