Ifdtest2 第 D 部分 (SC 讀取器標誌) - (手動測試)
此測試會藉由驗證 PC/SC 工作組測試卡片來驗證智慧卡讀取器的功能。 第 D 部分需要 PC/SC 測試卡。
測試詳細資料
規格 |
|
平台 |
|
支援的版本 |
|
預期的執行時間 (以分鐘為單位) | 5 |
類別 | 相容性 |
以分鐘為單位的逾時 () | 300 |
需要重新開機 | false |
需要特殊設定 | false |
類型 | automatic |
其他檔
此功能區域中的測試可能會有其他檔,包括必要條件、設定和疑難排解資訊,可在下列主題中找到 () :
執行測試
執行測試之前,請先完成測試設定,如測試需求: 智慧卡讀取器測試必要條件中所述。
疑難排解
如需 HLK 測試失敗的一般疑難排解,請參閱 針對 Windows HLK 測試失敗進行疑難排解。
如需疑難排解資訊,請參閱 針對 Device.Input Testing 進行疑難排解。
詳細資訊
此測試會驗證 PC/SC 工作組測試卡片的修訂二,以驗證智慧卡讀取器的功能。
測試及其硬體必須能夠執行特定的 IFD 測試並產生測試報告。 特定需求會處理) (錯誤狀況的正常運作和例外狀況。 此外,這些必須套用至讀取器子系統支援的所有通訊協定。
必須針對下列類型的智慧卡卡片讀取器提供組態檔:
- 無 觸 點
- 網路
- 需要網路
組態檔必須命名為 ifdtest_config.xml,而且必須放在 C:\SmartCardReaderTest 中。 下列程式碼片段顯示範例組態檔:
<SmartCardReader>
<Version>1</Version>
<Contactless>False</Contactless>
<Virtual>False</Virtual>
<Network>False</Network>
</SmartCardReader>
IFDTEST2 會在三個不同的測試作業中執行測試案例:讀取器介面測試會執行,而不會在讀取器中插入任何專案。 Resource Manager狀態測試案例會當做範例卡片插入並從讀取器中移除,並在各種情況下處理卡片插入偵測, (任何卡片都可用於此測試) 。
卡片通訊協定測試牽涉到插入具代表性的智慧卡,以及展示特定程式設計行為的特殊卡片作業。 使用一般可用卡片的測試案例會在選取的卡片上執行例行作業,以代表各種通訊速度和通訊協定組合。 這些測試已隨著卡片集 2 而變更。
Resource Manager 狀態測試案例
第 A 部分
卡片監視器測試案例會檢查智慧卡插入狀態的正確偵測,以及因未預期移除卡片而中斷的作業正確處理。
使用 IOCTL_SMARTCARD_IS_PRESENT 測試空白讀取器的偵測
使用 IOCTL_SMARTCARD_IS_PRESENT 測試插入卡片的偵測
使用 IOCTL_SMARTCARD_IS_ABSENT 測試插入卡片的移除
測試隨機計時卡片插入和移除動作的正確處理 15 秒
- 確認IOCTL_SMARTCARD_IS_PRESENT並IOCTL_SMARTCARD_IS_ABSENT產生有效的結果
第 C 部分
Resource Manager 測試案例會確認智慧卡資源管理員通常會命令狀態變更作業順利完成。
確認沒有卡片IOCTL_SMARTCARD_GET_STATE成功
確認傳回的狀態有效
確認正確從IOCTL_SMARTCARD_IS_PRESENT傳回
確認正確從IOCTL_SMARTCARD_IS_ABSENT傳回
操作員插入卡片
確認插入卡片IOCTL_SMARTCARD_GET_STATE成功
確認傳回的狀態有效
確認正確從IOCTL_SMARTCARD_IS_ABSENT傳回
冷重設卡片
確認卡片狀態為SCARD_NEGOTIABLE
將卡片通訊協定設定為 T0 或 T1
確認IOCTL_SMARTCARD_POWER是否成功關閉卡片
操作員移除卡片
確認沒有卡片IOCTL_SMARTCARD_GET_STATE成功
第 E 部分
電源管理測試案例會確認驅動程式會跨休眠順序傳回讀取器的正確狀態資訊,即使插入或移除卡片在休眠期間變更讀取器的狀態也一樣。
操作員移除所有卡片
操作員休眠電腦
操作員啟動電腦
確認從休眠傳回時SCARD_ABSENT讀取器狀態
運算子插入卡片
操作員休眠電腦
操作員啟動電腦
確認從休眠傳回時SCARD_PRESENT讀取器狀態
操作員移除卡片
操作員休眠電腦
操作員會在休眠期間移除卡片
操作員啟動電腦
確認從休眠傳回時SCARD_ABSENT讀取器狀態
操作員休眠電腦
操作員在休眠期間插入卡片
操作員啟動電腦
確認從休眠傳回時SCARD_PRESENT讀取器狀態
讀取器介面測試案例
第 B 部分
讀取器介面測試案例會檢查讀取器驅動程式上的正確實作屬性和狀態資訊。
檢查讀取器所報告的屬性,並插入範例卡片
測試驅動程式所報告的裝置名稱是否符合 WDM PnP 規範
使用 Null 傳回緩衝區測試驅動程式是否正確處理屬性讀取要求
如果驅動程式已關閉,並在 i/o 作業擱置中重新開啟時,測試該驅動程式是否正確停止擱置的 i/o 要求
測試未插入卡片的讀取屬性
SCARD_ATTR_VENDOR_NAME:非零長度字串
SCARD_ATTR_VENDOR_IFD_TYPE:非零長度字串
SCARD_ATTR_DEVICE_UNIT:4 位元組或更大的長度值
SCARD_ATTR_ATR_STRING:讀取嘗試失敗
SCARD_ATTR_DEFAULT_CLK:1000 < = value < = 20000
SCARD_ATTR_MAX_CLK:1000 < = value < = 20000
SCARD_ATTR_DEFAULT_DATA_RATE:讀取嘗試成功
SCARD_ATTR_MAX_DATA_RATE:讀取嘗試成功
SCARD_ATTR_MAX_IFSD: 1 < = value < = 254
SCARD_ATTR_CURRENT_PROTOCOL_TYPE:讀取嘗試失敗
測試插入卡片的讀取屬性
SCARD_ATTR_VENDOR_NAME:非零長度字串
SCARD_ATTR_VENDOR_IFD_TYPE:非零長度字串
SCARD_ATTR_DEVICE_UNIT:4 位元組或更大的長度值
SCARD_ATTR_ATR_STRING:讀取嘗試成功
SCARD_ATTR_DEFAULT_CLK:value 1000 < = value < = 20000
SCARD_ATTR_MAX_CLK:值 1000 < = value < = 20000
SCARD_ATTR_DEFAULT_DATA_RATE:讀取嘗試成功
SCARD_ATTR_MAX_DATA_RATE:讀取嘗試成功
SCARD_ATTR_MAX_IFSD: 1 < = value < = 254
SCARD_ATTR_CURRENT_PROTOCOL_TYPE: value = 0
使用 IOCTL_SMARTCARD_GET_STATE 移除卡片的讀取卡狀態:state < = SCARD_SWALLOWED
重設卡片:驗證結果為ERROR_UNRECOGNIZED_MEDIA
卡片通訊協定測試案例
第 D 部分
(卡片 0/ 未標記的)
ATR:3B EF 00 00 81 31 20 49
00 5C 50 43 54 10 27 F8
D2 76 00 00 38 33 00 4D
嘗試讀取緩衝區太小
等候時間延伸要求 - 路由要求圖至檔案 0001,讀取並驗證
檔案 0002 上的區塊鏈結重新同步測試:卡片接受第一個區塊。 然後重複要求重新傳輸區塊 2;主機重新同步 - 預期ERROR_IO_DEVICE
檔案 0002 上的區塊鏈結重新同步測試:卡片在區塊 2 上重複宣告 EDC 錯誤;主機重新同步 - 預期ERROR_IO_DEVICE
讀取至檔案 0003 時發生錯誤的區塊順序 - 預期ERROR_IO_DEVICE
Ifsc 要求檔案識別碼 0004
讀取至檔案 0005 強制逾時 - 預期ERROR_IO_DEVICE
讀取和處理結果檔 (A000) 、剖析和報告錯誤
Athena T0 Test Card (Card 1)
ATR:3B D6 18 00 80 B1 80 6D
1F 03 80 51 00 61 10 30
9E
使用長 (大約 900 mSec) ATR 傳輸時間重設
將通訊協定設定為 T0,預期成功
透過專屬命令清除所有卡片檔案,預期成功
建立測試檔案 0002,預期成功
選取測試檔案 0002,預期成功
將 256 個位元組寫入為 64 個位元組的 4 個區塊,預期成功
讀取並確認 256 個位元組為 64 個位元組的 4 個區塊,預期成功
將 255 個位元組寫入為單一區塊,預期成功。 卡片會以單一位元組模式接收位元組,直到保留 8 個位元組為止,此時主機會要求其餘的資料作為單一區塊,預期成功
將接收緩衝區設定為 9 個位元組,並嘗試從卡片接收 10 個位元組的回應,預期ERROR_INSUFFICIENT BUFFER
傳送格式不正確的 (Lc 與資料長度不一致,) select 命令 00 a4 00 00 08 00,預期ERROR_INVALID_PARAMETER
選取不存在的檔案,預期 6A 82
將命令傳送給卡片 (80 00 01 00 01 11) ,預期ERROR_SEM_TIMEOUT
重設卡片
將 echo 命令傳送至卡片,以測試延伸模組 1、2、5 和 30 個延伸模組的要求等候時間延伸模組,預期成功
Athena\Inverse 慣例測試卡片 (卡片 2)
ATR:3F 96 18 80 01 80 51 00
61 10 30 9F
使用長 (大約 900 mSec) ATR 傳輸時間重設
將通訊協定設定為 T0,預期成功
透過專屬命令清除所有卡片檔案,預期成功
建立測試檔案 0002,預期成功
選取測試檔案 0002,預期成功
將 256 個位元組寫入為 64 個位元組的 4 個區塊,預期成功
讀取並確認 256 個位元組為 64 個位元組的 4 個區塊,預期成功
將 255 個位元組寫入為單一區塊,預期成功。 卡片會以單一位元組模式接收位元組,直到保留 128 個位元組為止,此時主機會要求其餘的資料作為單一區塊,預期成功
將接收緩衝區設定為 9 個位元組,並嘗試從卡片接收 10 個位元組的回應,預期ERROR_INSUFFICIENT BUFFER
傳送格式不正確的 (Lc 與資料長度不一致,) select 命令 00 a4 00 00 08 00,預期ERROR_INVALID_PARAMETER
選取不存在的檔案,預期 6A 82
將命令傳送給卡片 (80 00 01 00 01 11) ,預期ERROR_SEM_TIMEOUT
重設卡片
將 echo 命令傳送至卡片,以測試延伸模組 1、2、5 和 30 個延伸模組的要求等候時間延伸模組,預期成功
Axalto 32K eGate 測試卡片 (卡片 3)
ATR:3B 95 18 40 FF 62 01 02
01 04
嘗試設定通訊協定 T=1,預期ERROR_NOT_SUPPORTED
設定通訊協定 T=0
使用卡片傳輸金鑰進行驗證,預期成功
從先前執行中刪除檔案來清除卡片狀態, (移除 RSA 公開和私密金鑰檔案、使用者 PIN 檔案,以及測試檔案) ,預期成功
建立新的測試檔案 0055,預期成功
測試寫入區塊 1、25、75、128 個位元組以測試檔案,預期成功
測試從測試檔案讀取 128 個位元組、比較資料、預期成功
刪除測試檔案 0055,預期成功
建立 PIN 檔案,預期成功
將使用者 PIN 設定為 00000000,預期成功
建立私密金鑰檔案,預期成功
建立公開金鑰檔案,預期成功
選取私密金鑰檔案,預期成功
驗證具有 PIN 的使用者,預期成功
產生金鑰組,預期成功
雜湊 16 個位元組資料,預期成功
取得雜湊作業的回應資料,20 個位元組 + 2 個位元組回應,預期成功
(卡 4)
ATR:3B DF 18 00 81 31 FE 67
00 5C 49 43 4D D4 91 47
D2 76 00 00 38 33 00 58
嘗試設定通訊協定 T=0,預期ERROR_NOT_SUPPORTED
設定通訊協定 T=1,預期成功
使用 PIN 12345678進行驗證,預期成功
如果現有執行,請從先前執行中移除檔案
建立新的測試檔案 0007,預期成功
選取檔案 0007,預期成功
記錄系統時間
將 1、25、50、75、100、125、128 個位元組的測試區塊寫入卡片 - 讀取並驗證每個區塊寫入之後的資料,預期成功
取得系統時間,並以秒為單位顯示測試完成的經過時間
選取檔案 0007,預期成功
寫入位元組值 55 的 128 位元組區塊、回讀並驗證、預期成功
寫入位元組值的 128 位元組區塊 AA、回讀並驗證、預期成功
寫入位元組值 00 的 128 位元組區塊、回讀並驗證、預期成功
寫入位元組值 FF 的 128 位元組區塊、回讀並驗證、預期成功
選取不存在的檔案 7777,預期 9404
選取 MF 00 a4 00 00,預期 90 00 (成功)
選取不正確檔案 77,預期 94 04
傳送格式不正確的 (Lc 與資料長度不一致,) select 命令 00 a4 00 00 08 00,預期 94 04
傳送格式不正確的 (太短) 選取命令 00 a4 00,預期 67 00
從 MF 建立 DF 5555,預期成功
選取 5555,預期成功
從 5555 建立 DF 5656,預期成功
選取 5656,預期成功
在 DF 5656 中建立檔案 5757,預期成功
依完整路徑從 MF 選取該檔案,預期成功
將 8 個位元組寫入檔案、讀取並驗證、預期成功
刪除選取的檔案,預期成功
嘗試依完整路徑選取該檔案,預期 94 04
選取並刪除 DF 5656,預期成功
選取並刪除 DF 5555,預期成功
選取並刪除檔案 0007,預期成功
執行讀卡機測試
警告
針對第 D 部分的電源管理測試案例,電腦會休眠,您可能必須在測試智慧卡讀取器中移除或重新插入智慧卡。
元件 A、B、C 和 E
使用 PC/SC 工作組測試卡片集 2 的卡片,依照元件 A、B、C 和 E 畫面上的指示操作。 出現提示時,請插入並移除測試智慧卡讀取器中的每個智慧卡。
第 D 部分
依照第 D 部分畫面上的指示來完成四個電源管理測試案例。 出現提示時,請從測試智慧卡閱讀機插入或移除智慧卡,並休眠或重新開機測試電腦。
若要執行 Test 1 Card Out/Card Out 測試案例:
從測試智慧卡閱讀機中移除智慧卡。
電腦會在 15 秒後自動休眠。
允許電腦休眠 30 到 60 秒。
按電腦電源按鈕,讓電腦離開休眠狀態並繼續測試。
出現提示時,請在測試智慧卡閱讀機中重新插入智慧卡。
若要執行 Test 2 Card In/Card Out 測試案例:
確認智慧卡位於測試智慧卡閱讀機中。
電腦會在 15 秒後自動休眠。
允許電腦休眠 30 到 60 秒。
從測試智慧卡閱讀機中移除智慧卡。
按電腦電源按鈕,讓電腦離開休眠狀態。
出現提示時,請先在測試智慧卡閱讀機中重新插入智慧卡,再開始下一個測試案例。
若要執行 Test 3 Card In/Card 在測試案例中:
確認智慧卡位於測試智慧卡閱讀機中。
電腦會在 15 秒後自動休眠。
允許電腦休眠 30 到 60 秒。
按電腦電源按鈕,讓電腦離開休眠狀態。
出現提示時,請先從測試智慧卡閱讀機中移除智慧卡,再開始下一個測試案例。
若要在測試案例中執行 Test 4 Card Out/Card:
確認測試智慧卡讀取器中沒有智慧卡。
電腦會在 15 秒後自動休眠。
允許電腦休眠 30 到 60 秒。
在測試智慧卡讀取器中重新插入智慧卡。
按電腦電源按鈕,讓電腦離開休眠狀態。 智慧卡閱讀機測試已完成。
檢視測試記錄檔。
執行所有其他必要測試。
成功完成此測試提交所需的所有測試之後,請傳回測試結果。
命令語法
若要在 HLK Studio 外部執行此命令,您必須停止智慧卡服務、執行 命令,然後啟動智慧卡服務。
命令 | 描述 |
---|---|
ifdtest2.exe -sa -sb -sc -se -sf |
執行測試。 |
檔案清單
檔案 | 位置 |
---|---|
ifdtest2.exe |
< testbinroot >\nttest\Driverstest\storage\wdk\ |
參數
參數名稱 | 參數描述 |
---|---|
LLU_NetAccessOnly | 用來存取測試檔案共用的使用者帳戶。 |
LLU_LclAdminUsr | 用來執行測試的使用者帳戶。 |