Add HMAC authentication to all 42 implementations

- Update all un.* implementations to use HMAC-SHA256 signing
- Headers: Authorization (Bearer public_key), X-Timestamp, X-Signature
- Signature: HMAC-SHA256(secret_key, "timestamp:METHOD:path:body")
- Fix test suite issues (bash arithmetic, ES module compat, TCL shebang)
- Add CLAUDE.md with inception testing documentation
- Update README.md with HMAC auth and dependency table
- All 38 implementations pass inception test via un2
This commit is contained in:
Russell Ballestrini 2025-12-28 14:24:03 -05:00
parent dba8ffeedc
commit a4f9bfa377
56 changed files with 3597 additions and 1312 deletions

View file

@ -40,11 +40,15 @@ run_test() {
echo ""
}
# Check for API key
if [ -z "$UNSANDBOX_API_KEY" ]; then
echo "⚠ WARNING: UNSANDBOX_API_KEY not set"
echo " Integration and functional tests will be skipped"
echo ""
# Check for API auth keys
if [ -z "$UNSANDBOX_PUBLIC_KEY" ] || [ -z "$UNSANDBOX_SECRET_KEY" ]; then
if [ -z "$UNSANDBOX_API_KEY" ]; then
echo "⚠ WARNING: UNSANDBOX authentication not configured"
echo " Integration and functional tests will be skipped"
echo " Set HMAC keys: export UNSANDBOX_PUBLIC_KEY=... UNSANDBOX_SECRET_KEY=..."
echo " Or legacy key: export UNSANDBOX_API_KEY=..."
echo ""
fi
fi
# Run tests for each language