custom
code
sovereign-compute
pax-coder / scripts /verify-pax-coder
SNAPKITTYWEST's picture
chore: push pax-coder from SNAPKITTYWEST GitHub
ef6eb55 verified
Raw
History Blame Contribute Delete
7.42 kB
#!/bin/bash
# PAX-Coder Security Status Verification
#
# Reports the complete security posture:
# - Release integrity
# - Release signature
# - Node identity
# - Capability presence
# - Capability validity
# - Protected execution status
#
# Exit codes:
# 0 = All checks passed (authorized)
# 1 = At least one check failed
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(dirname "$SCRIPT_DIR")"
SOVEREIGN_DIR="$REPO_ROOT/sovereign"
PASS_COUNT=0
FAIL_COUNT=0
echo "=========================================="
echo "PAX-CODER SECURITY STATUS REPORT"
echo "=========================================="
echo ""
# ============================================================================
# Check 1: Release Integrity
# ============================================================================
echo "Release Integrity Check"
if "$SCRIPT_DIR/verify-clone" > /tmp/pax-integrity.txt 2>&1; then
INTEGRITY_STATUS="PASS"
PASS_COUNT=$((PASS_COUNT+1))
echo " βœ“ PASS"
else
INTEGRITY_STATUS="FAIL"
FAIL_COUNT=$((FAIL_COUNT+1))
echo " βœ— FAIL"
fi
rm -f /tmp/pax-integrity.txt
echo ""
# ============================================================================
# Check 2: Release Signature
# ============================================================================
echo "Release Signature Check"
if [ -f "$SOVEREIGN_DIR/release.json" ]; then
if grep -q '"signature_hex"' "$SOVEREIGN_DIR/release.json"; then
SIGNATURE_STATUS="PASS"
PASS_COUNT=$((PASS_COUNT+1))
echo " βœ“ PASS (signature present in release.json)"
else
SIGNATURE_STATUS="FAIL"
FAIL_COUNT=$((FAIL_COUNT+1))
echo " βœ— FAIL (signature missing)"
fi
else
SIGNATURE_STATUS="UNAVAILABLE"
echo " ⊘ UNAVAILABLE (no release.json)"
fi
echo ""
# ============================================================================
# Check 3: Node Identity
# ============================================================================
echo "Node Identity Check"
if [ -f "$SOVEREIGN_DIR/node.json" ] && [ -f "$SOVEREIGN_DIR/node_pk.pem" ]; then
NODE_STATUS="PASS"
PASS_COUNT=$((PASS_COUNT+1))
NODE_ID=$(grep '"node_id"' "$SOVEREIGN_DIR/node.json" 2>/dev/null | cut -d'"' -f4 || echo "unknown")
echo " βœ“ PASS"
echo " Node ID: $NODE_ID"
else
NODE_STATUS="FAIL"
FAIL_COUNT=$((FAIL_COUNT+1))
echo " βœ— FAIL (node.json or node_pk.pem missing)"
fi
echo ""
# ============================================================================
# Check 4: Capability Presence
# ============================================================================
echo "Capability Presence Check"
CAPABILITY_TOKEN="${PAX_CAPABILITY_TOKEN:-}"
CAPABILITY_FILE="$SOVEREIGN_DIR/.capability"
if [ -n "$CAPABILITY_TOKEN" ] || [ -f "$CAPABILITY_FILE" ]; then
CAPABILITY_PRESENT="YES"
echo " βœ“ YES (capability available)"
else
CAPABILITY_PRESENT="NO"
echo " βœ— NO (capability not available)"
fi
echo ""
# ============================================================================
# Check 5: Capability Validity (if present)
# ============================================================================
echo "Capability Validity Check"
if [ "$CAPABILITY_PRESENT" = "YES" ]; then
if [ -n "$CAPABILITY_TOKEN" ]; then
CAPABILITY="$CAPABILITY_TOKEN"
else
CAPABILITY=$(cat "$CAPABILITY_FILE" 2>/dev/null || echo "")
fi
# Parse expiration time
CAPABILITY_EXPIRES=$(echo "$CAPABILITY" | grep -o '"expires_at":"[^"]*"' | cut -d'"' -f4 || echo "")
if [ -z "$CAPABILITY_EXPIRES" ]; then
CAPABILITY_VALIDITY_STATUS="FAIL"
FAIL_COUNT=$((FAIL_COUNT+1))
echo " βœ— FAIL (expiration not found)"
else
# Check if expired
CURRENT_TIME=$(date +%s 2>/dev/null || echo "0")
EXPIRATION_TIME=$(date -d "$CAPABILITY_EXPIRES" +%s 2>/dev/null || date -j -f "%Y-%m-%dT%H:%M:%SZ" "$CAPABILITY_EXPIRES" +%s 2>/dev/null || echo "0")
if [ "$CURRENT_TIME" -le "$EXPIRATION_TIME" ]; then
CAPABILITY_VALIDITY_STATUS="VALID"
PASS_COUNT=$((PASS_COUNT+1))
echo " βœ“ VALID"
echo " Expires: $CAPABILITY_EXPIRES"
else
CAPABILITY_VALIDITY_STATUS="EXPIRED"
FAIL_COUNT=$((FAIL_COUNT+1))
echo " βœ— EXPIRED"
echo " Expired: $CAPABILITY_EXPIRES"
fi
fi
else
CAPABILITY_VALIDITY_STATUS="N/A"
echo " ⊘ N/A (no capability)"
fi
echo ""
# ============================================================================
# Check 6: Capability Signature
# ============================================================================
echo "Capability Signature Check"
if [ "$CAPABILITY_PRESENT" = "YES" ]; then
CAPABILITY_SIGNATURE=$(echo "$CAPABILITY" | cut -d'|' -f2 || echo "")
if [ -z "$CAPABILITY_SIGNATURE" ]; then
SIGNATURE_CHECK_STATUS="FAIL"
FAIL_COUNT=$((FAIL_COUNT+1))
echo " βœ— FAIL (signature missing)"
elif echo "$CAPABILITY_SIGNATURE" | grep -qE '^[a-f0-9]{128}$'; then
SIGNATURE_CHECK_STATUS="PASS"
PASS_COUNT=$((PASS_COUNT+1))
echo " βœ“ PASS (signature format valid)"
else
SIGNATURE_CHECK_STATUS="FAIL"
FAIL_COUNT=$((FAIL_COUNT+1))
echo " βœ— FAIL (signature format invalid)"
fi
else
SIGNATURE_CHECK_STATUS="N/A"
echo " ⊘ N/A (no capability)"
fi
echo ""
# ============================================================================
# Check 7: Protected Execution Authorization
# ============================================================================
echo "Protected Execution Authorization"
if [ "$INTEGRITY_STATUS" = "PASS" ] && [ "$CAPABILITY_VALIDITY_STATUS" = "VALID" ] && [ "$SIGNATURE_CHECK_STATUS" = "PASS" ]; then
EXECUTION_STATUS="AUTHORIZED"
echo " βœ“ AUTHORIZED"
echo ""
echo " You may execute protected operations:"
echo " - generate_node_key"
echo " - generate_release"
else
EXECUTION_STATUS="DENIED"
echo " βœ— DENIED"
echo ""
if [ "$INTEGRITY_STATUS" != "PASS" ]; then
echo " Reason: Release integrity verification failed"
fi
if [ "$CAPABILITY_PRESENT" = "NO" ]; then
echo " Reason: Capability not available"
elif [ "$CAPABILITY_VALIDITY_STATUS" = "EXPIRED" ]; then
echo " Reason: Capability expired"
elif [ "$SIGNATURE_CHECK_STATUS" = "FAIL" ]; then
echo " Reason: Capability signature invalid"
fi
fi
echo ""
# ============================================================================
# Summary
# ============================================================================
echo "=========================================="
echo "SUMMARY"
echo "=========================================="
echo ""
echo "Release Integrity: $INTEGRITY_STATUS"
echo "Release Signature: $SIGNATURE_STATUS"
echo "Node Identity: $NODE_STATUS"
echo "Capability: $CAPABILITY_PRESENT"
echo "Capability Validity: $CAPABILITY_VALIDITY_STATUS"
echo "Capability Signature: $SIGNATURE_CHECK_STATUS"
echo "Protected Execution: $EXECUTION_STATUS"
echo ""
echo "Passed: $PASS_COUNT | Failed: $FAIL_COUNT"
echo ""
if [ $FAIL_COUNT -eq 0 ] && [ "$EXECUTION_STATUS" = "AUTHORIZED" ]; then
exit 0
else
exit 1
fi