feat: plan 16-01
This commit is contained in:
@@ -84,5 +84,20 @@ if [[ -f "$HEAD_FILE" && -f "$HEAD_SIG" && -f "$AUDIT_PUB" ]] && command -v open
|
||||
fi
|
||||
echo "AUDIT_CHAIN_VALID anchor=signed last_hash=$COMPUTED_HEAD"
|
||||
else
|
||||
# SEC-01 (H-01): in enforced mode a missing/unverifiable signature is a FAILURE,
|
||||
# not "valid unsigned". Otherwise deleting audit-head.sig (or the pubkey) after
|
||||
# tampering + recomputing the chain would pass verification. Permissive mode
|
||||
# (dev default) keeps the previous unsigned-OK behaviour. Self-contained check
|
||||
# (this script is copied into sandboxes by tests, so it must not source common.sh):
|
||||
# CASAN_PROFILE=prod (SEC-17) enables all enforce flags; CASAN_VERIFY_STRICT=1 this one.
|
||||
if [[ "${CASAN_PROFILE:-}" == "prod" || "${CASAN_VERIFY_STRICT:-}" == "1" ]]; then
|
||||
MISSING=""
|
||||
[[ -f "$HEAD_FILE" ]] || MISSING="$MISSING head-file"
|
||||
[[ -f "$HEAD_SIG" ]] || MISSING="$MISSING head-sig"
|
||||
[[ -f "$AUDIT_PUB" ]] || MISSING="$MISSING pubkey"
|
||||
command -v openssl >/dev/null 2>&1 || MISSING="$MISSING openssl"
|
||||
echo "AUDIT_CHAIN_UNSIGNED_STRICT_FAIL last_hash=$COMPUTED_HEAD missing=${MISSING# }" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "AUDIT_CHAIN_VALID anchor=unsigned last_hash=$COMPUTED_HEAD"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user