Ifdtest2 元件 A B 和 C (SC 讀者標誌) - (手動測試)
此測試會藉由驗證PC/SC工作組測試卡片來驗證智慧卡讀取器的功能。 您可以使用任何智慧卡執行元件 A、B 和 C。
測試詳細資料
規格 |
|
平台 |
|
支援的版本 |
|
預期的執行時間(以分鐘為單位) | 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:值 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 部分
Bnn Technologies PC/SC 合規性測試卡 (卡片 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)、剖析和報告錯誤
雅典娜 T0 測試卡 (卡片 1)
ATR:3B D6 18 00 80 B1 80 6D
1F 03 80 51 00 61 10 30
9E
重設長度 (約 900 毫秒) ATR 傳輸時間
將通訊協定設定為 T0,預期成功
依專屬命令清除所有卡片檔案,預期成功
建立測試檔案 0002,預期成功
選取測試檔案 0002,預期成功
將 256 個字節寫入為 64 個字節的 4 個區塊,預期成功
讀取並確認 256 個字節為 64 個字節的 4 個區塊,預期成功
將 255 個字節寫入為單一區塊,預期成功。 卡片會在單一位元組模式中接收位元組,直到8個字節保留為止,此時主機會要求其餘的數據作為單一區塊,預期成功
將接收緩衝區設定為 9 個字節,並嘗試從卡片接收 10 個字節的回應,預期ERROR_INSUFFICIENT BUFFER
傳送格式不正確(Lc 與數據長度不一致)選取命令 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 毫秒) ATR 傳輸時間
將通訊協定設定為 T0,預期成功
依專屬命令清除所有卡片檔案,預期成功
建立測試檔案 0002,預期成功
選取測試檔案 0002,預期成功
將 256 個字節寫入為 64 個字節的 4 個區塊,預期成功
讀取並確認 256 個字節為 64 個字節的 4 個區塊,預期成功
將 255 個字節寫入為單一區塊,預期成功。 卡片會在單一位元組模式中接收位元組,直到128個字節維持在一起為止,此時主機會要求其餘的數據作為單一區塊,預期成功
將接收緩衝區設定為 9 個字節,並嘗試從卡片接收 10 個字節的回應,預期ERROR_INSUFFICIENT BUFFER
傳送格式不正確(Lc 與數據長度不一致)選取命令 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 個字節的回應,預期成功
Bnn SiCrypt 卡片模組測試卡 (卡片 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,預期成功
寫入 128 位元組區塊的位元組值 55、讀取和驗證、預期成功
寫入 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 部分,以完成四個電源管理測試案例。 出現提示時,請插入或移除測試智慧卡讀取器中的智慧卡,並休眠或重新啟動測試計算機。
若要執行測試 1 卡出/出卡測試案例:
從測試智慧卡讀取器中移除智慧卡。
計算機會在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 外部執行此命令,您必須停止智慧卡服務、執行 命令,然後啟動智慧卡服務。
Command | 描述 |
---|---|
ifdtest2.exe -sd -se -sf |
執行測試。 |
檔案清單
檔案 | Location |
---|---|
ifdtest2.exe |
<testbinroot>\nttest\Driverstest\storage\wdk\ |
參數
參數名稱 | 參數描述 |
---|---|
LLU_NetAccessOnly | 用來存取測試檔案共享的用戶帳戶。 |
LLU_Lcl管理員 Usr | 用於執行測試的用戶帳戶。 |