#!/bin/bash # sov-attest.sh : Bifrost WORM-Chain Attestation Wrapper set -euo pipefail IMAGE_NAME="${1:?Usage: sov-attest.sh }" # MOCK MODE — set BIFROST_KEY to a real Ed25519 private key path for production BIFROST_KEY="${BIFROST_KEY:-MOCK}" WORM_FILE="${IMAGE_NAME//\//_}.worm" echo "[+] Initiating SOV-KERNEL-MONSTER Attestation for: $IMAGE_NAME" # 1. Blake3 hash of the image tar stream HASH=$(docker save "$IMAGE_NAME" | b3sum --no-names) echo "[ATTESTATION] Blake3: $HASH" # 2. Sign with Ed25519 (or mock if no key present) if [ "$BIFROST_KEY" = "MOCK" ]; then SIGNATURE="MOCK_SIG:$(echo -n "$HASH" | sha256sum | awk '{print $1}')" echo "[MOCK] Signing skipped — set BIFROST_KEY to enable real Ed25519 signing" else echo -n "$HASH" | openssl pkeyutl -sign -inkey "$BIFROST_KEY" -out "${HASH}.sig" SIGNATURE=$(base64 -w0 "${HASH}.sig") rm -f "${HASH}.sig" fi # 3. Write WORM sidecar cat > "$WORM_FILE" < sov-registry"