#!/bin/bash # SecretumVault Server HTTP API Demo (Bash version - reliable) echo "" echo "════════════════════════════════════════════════════════════════════════════════" echo "🔐 SecretumVault Server HTTP API Demo" echo "════════════════════════════════════════════════════════════════════════════════" echo "" VAULT_URL="http://localhost:8200" TOKEN="mytoken" # Test 1: Health echo "✓ Test 1: Health Check" curl -s -H "X-Vault-Token: $TOKEN" "$VAULT_URL/v1/sys/health" | jq '.data' echo "" # Test 2: Generate PQC Key echo "✓ Test 2: Generate PQC Key (ML-KEM-768)" KID="demo-$(date +%s)" echo " Generated: $KID" curl -s -X POST \ -H "X-Vault-Token: $TOKEN" \ -H "Content-Type: application/json" \ -d "{}" \ "$VAULT_URL/v1/transit/pqc-keys/$KID/generate" > /dev/null echo "" # Test 3: Retrieve Key echo "✓ Test 3: Retrieve Key Metadata" KEY_DATA=$(curl -s -H "X-Vault-Token: $TOKEN" "$VAULT_URL/v1/transit/keys/$KID") echo " Algorithm: $(echo "$KEY_DATA" | jq -r '.data.algorithm')" PUB_KEY_SIZE=$(echo "$KEY_DATA" | jq -r '.data.public_key' | base64 -d | wc -c) echo " Public key: $PUB_KEY_SIZE bytes ✅" echo "" # Test 4: System Status echo "✓ Test 4: System Status" STATUS=$(curl -s -H "X-Vault-Token: $TOKEN" "$VAULT_URL/v1/sys/status") echo " Sealed: $(echo "$STATUS" | jq -r '.data.sealed')" echo " Engines: $(echo "$STATUS" | jq '.data.engines | length')" echo "" # Test 5: List Mounts echo "✓ Test 5: List Mounted Engines" MOUNTS=$(curl -s -H "X-Vault-Token: $TOKEN" "$VAULT_URL/v1/sys/mounts") echo "$MOUNTS" | jq -r '.data | to_entries[] | " • \(.key): \(.value.type)"' echo "" # Test 6: Generate Data Key echo "✓ Test 6: Generate Data Key" curl -s -X POST \ -H "X-Vault-Token: $TOKEN" \ -H "Content-Type: application/json" \ -d '{"bits":256}' \ "$VAULT_URL/v1/transit/datakeys/plaintext/generate-key" | jq '.data | {algorithm, bits: 256}' echo "" echo "════════════════════════════════════════════════════════════════════════════════" echo "✅ All tests completed successfully!" echo "════════════════════════════════════════════════════════════════════════════════"