92 lines
2.3 KiB
Bash
92 lines
2.3 KiB
Bash
#!/bin/bash
|
|
|
|
# CMAC API 測試腳本
|
|
|
|
echo "🚀 啟動 CMAC 驗證 API 測試..."
|
|
|
|
# 啟動 API 服務器
|
|
echo "📡 啟動 API 服務器..."
|
|
./cmac_api_server 8888 &
|
|
API_PID=$!
|
|
|
|
# 等待服務器啟動
|
|
sleep 3
|
|
|
|
# 檢查服務器是否啟動
|
|
if ! ps -p $API_PID > /dev/null 2>&1; then
|
|
echo "❌ API 服務器啟動失敗"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ API 服務器已啟動 (PID: $API_PID)"
|
|
|
|
# 測試健康檢查
|
|
echo ""
|
|
echo "🏥 測試健康檢查..."
|
|
if HEALTH_RESPONSE=$(curl -s -m 5 "http://localhost:8888/health" 2>/dev/null); then
|
|
echo "✅ 健康檢查成功:"
|
|
echo "$HEALTH_RESPONSE" | head -5
|
|
else
|
|
echo "❌ 健康檢查失敗"
|
|
fi
|
|
|
|
# 測試首頁
|
|
echo ""
|
|
echo "🏠 測試首頁..."
|
|
if HOME_RESPONSE=$(curl -s -m 5 "http://localhost:8888/" 2>/dev/null); then
|
|
echo "✅ 首頁測試成功:"
|
|
echo "$HOME_RESPONSE" | grep -o '<title>.*</title>' || echo "HTML 回應正常"
|
|
else
|
|
echo "❌ 首頁測試失敗"
|
|
fi
|
|
|
|
# 測試 CMAC 驗證 (使用之前測試成功的資料)
|
|
echo ""
|
|
echo "🔐 測試 CMAC 驗證..."
|
|
TEST_UID="0456735AD51F90"
|
|
TEST_CTR="000028"
|
|
TEST_CMAC="222ED1BA962F7F5C"
|
|
TEST_KEY="1"
|
|
|
|
VERIFY_URL="http://localhost:8888/verify?uid=${TEST_UID}&ctr=${TEST_CTR}&cmac=${TEST_CMAC}&key=${TEST_KEY}"
|
|
|
|
if VERIFY_RESPONSE=$(curl -s -m 5 "$VERIFY_URL" 2>/dev/null); then
|
|
echo "✅ CMAC 驗證測試成功:"
|
|
echo "$VERIFY_RESPONSE"
|
|
else
|
|
echo "❌ CMAC 驗證測試失敗"
|
|
fi
|
|
|
|
# 測試錯誤的 CMAC
|
|
echo ""
|
|
echo "🚫 測試錯誤 CMAC (預期失敗)..."
|
|
WRONG_CMAC="FFFFFFFFFFFFFFFF"
|
|
WRONG_URL="http://localhost:8888/verify?uid=${TEST_UID}&ctr=${TEST_CTR}&cmac=${WRONG_CMAC}&key=${TEST_KEY}"
|
|
|
|
if WRONG_RESPONSE=$(curl -s -m 5 "$WRONG_URL" 2>/dev/null); then
|
|
echo "✅ 錯誤 CMAC 測試成功:"
|
|
echo "$WRONG_RESPONSE"
|
|
else
|
|
echo "❌ 錯誤 CMAC 測試失敗"
|
|
fi
|
|
|
|
# 測試缺少參數
|
|
echo ""
|
|
echo "📝 測試缺少參數 (預期失敗)..."
|
|
INCOMPLETE_URL="http://localhost:8888/verify?uid=${TEST_UID}&ctr=${TEST_CTR}"
|
|
|
|
if INCOMPLETE_RESPONSE=$(curl -s -m 5 "$INCOMPLETE_URL" 2>/dev/null); then
|
|
echo "✅ 缺少參數測試成功:"
|
|
echo "$INCOMPLETE_RESPONSE"
|
|
else
|
|
echo "❌ 缺少參數測試失敗"
|
|
fi
|
|
|
|
# 清理
|
|
echo ""
|
|
echo "🧹 清理中..."
|
|
kill $API_PID 2>/dev/null
|
|
wait $API_PID 2>/dev/null
|
|
|
|
echo ""
|
|
echo "✅ API 測試完成!" |