#!/usr/bin/env bash
# ---------------------------------------------------------------------------
# CodeMole — Secret lokal verschluesseln (encrypt-secret.sh)
#
# Laeuft KOMPLETT OFFLINE. Es wird nichts gesendet, gespeichert oder getrackt —
# das Skript nutzt nur 'openssl' und den unten eingebetteten OEFFENTLICHEN Schluessel.
# Ausgabe ist ein 'enc:v1:<blob>' fuer deine .codemole.yml. Entschluesseln kann den
# Blob ausschliesslich der CodeMole-Server (der den PRIVATEN Schluessel haelt).
#
# Nutzung:  bash encrypt-secret.sh
#           (Secret wird versteckt abgefragt -> kein Eintrag in der Shell-History)
# Braucht:  bash + openssl (auf macOS/Linux vorinstalliert).
# ---------------------------------------------------------------------------
set -euo pipefail

PUB='-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArB5A4EMCdF8N6XLpWpOn
yxp/rTwyXPju3cOnxz6yHQpp2fcO11gHVsbu3zyQH3vW+Wn6Yseb9po5MCJfVPSr
0QIf6MZnjqkKLCH6ZFl9EpcXcO3NJ1/HtSXo+od5HvBUVHiJlFp15UYvCYQPp4Rx
/9mXUNtTFxdr3mC/vqC04HV4FK2cm/awiD5mTDS0ObmL1+1Ss5f87k6XJWCD5uic
a2JseBB0LBUKnXI2oP80NPeuPMOYA/1PyHwEqM/wYV7ldexf1YG+v1lMKcHjqrJy
WrSnEKYPRw6pKkuguLIIwL6XEOIv9pPSdUTh0Y6+rv/d3x3FuIvZqGRFmklYd0YJ
7gcxEnmze7bkOPpVImWgEu4l8DPLRMn7MPYQ7i93GEwCkOjOXtU8+dd4k8XIuJFS
X/N0Tc/dr/Kp1dCM9yI69RAXXpWhjXVekccqn5BZST/VwvsAAeks8UCGCxsKOgBN
SNGIXDsn5kLuvh+MRgVFC+T3xM0UZ8PHzOtsDsHgN5jxXWAXiiwiU/VDRGl/oc4/
Fb9RCo3XZVGebvrv8OgwUs8zqxicIxnx+5E7VLFc70Hd/Y3AXP2yzbrXC5njBu+X
W1zaFyqF7W21JXFA0avn3FhFjv+bwOEXS1i6C2RU81XKYUCJJZop+g7J0mudmrWx
FFAJDCbLWvY4P3pP9CuDxDECAwEAAQ==
-----END PUBLIC KEY-----'

command -v openssl >/dev/null || { echo "openssl nicht gefunden." >&2; exit 1; }
printf 'Secret (z. B. HA Long-Lived Token) — Eingabe ist versteckt: ' >&2
read -rs SECRET; echo >&2
[ -n "${SECRET}" ] || { echo "Kein Secret eingegeben." >&2; exit 1; }

BLOB="$(printf '%s' "${SECRET}" \
  | openssl pkeyutl -encrypt -pubin -inkey <(printf '%s' "${PUB}") \
      -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 \
  | base64 | tr -d '\n')"

printf '\nFuer die .codemole.yml:\n\n  ha_token: "enc:v1:%s"\n\n' "${BLOB}" >&2
printf 'enc:v1:%s\n' "${BLOB}"
