#!/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 '.*' || 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 測試完成!"