Ifdtest2 파트 D(SC 판독기 LOGO) - (수동 테스트)
이 테스트는 PC/SC 작업 그룹 테스트 카드의 유효성을 검사하여 스마트 카드 판독기의 기능을 확인합니다. 파트 D에는 PC/SC 테스트 카드가 필요합니다.
테스트 세부 정보
사양 |
|
플랫폼 |
|
지원되는 릴리스 |
|
예상 실행 시간(분) | 5 |
범주 | 호환성 |
시간 제한(분) | 300 |
다시 부팅 필요 | false |
특별한 구성 필요 | false |
형식 | automatic |
추가 설명서
이 기능 영역의 테스트에는 다음 항목에서 찾을 수 있는 필수 조건, 설정, 문제 해결 정보를 포함한 추가 설명서가 있을 수 있습니다.
테스트 실행
테스트를 실행하기 전에 테스트 요구 사항: 스마트 카드 읽기 권한자 테스트 필수 조건에 설명된 대로 테스트 설정을 완료합니다.
문제 해결
HLK 테스트 실패의 일반적인 문제 해결은 Windows HLK 테스트 실패 문제 해결을 참조하세요.
문제 해결 정보는 Device.Input 테스트 문제 해결을 참조하세요.
추가 정보
이 테스트는 PC/SC 작업 그룹 테스트 카드의 수정 버전 2의 유효성을 검사하여 스마트 카드 판독기의 기능을 확인합니다.
테스트 및 해당 하드웨어는 특정 IFD 테스트를 실행하고 테스트 보고서를 생성할 수 있어야 합니다. 특정 요구 사항은 명목 작업 및 예외적 작업(오류 조건)을 처리합니다. 또한 판독기 하위 시스템이 지원하는 모든 프로토콜에 적용되어야 합니다.
다음 유형의 스마트 카드 판독기에는 구성 파일을 제공해야 합니다.
- 비접촉식
- 가상
- 네트워크 필요
구성 파일 이름은 ifdtest_config.xml로 지정해야 하며 C:\SmartCardReaderTest에 배치해야 합니다. 다음 코드 조각은 샘플 구성 파일을 보여 줍니다.
<SmartCardReader>
<Version>1</Version>
<Contactless>False</Contactless>
<Virtual>False</Virtual>
<Network>False</Network>
</SmartCardReader>
IFDTEST2는 세 가지 개별 테스트 작업에서 테스트 사례를 수행합니다. 판독기 인터페이스 테스트는 판독기에 아무것도 삽입하지 않고 수행됩니다. 리소스 관리자 상태 테스트 사례는 샘플 카드가 판독기에 삽입 및 제거되고 다양한 조건에서 카드 삽입 검색을 처리하여 수행됩니다(이 테스트에 모든 카드를 사용할 수 있음).
카드 프로토콜 테스트에는 일반적으로 사용 가능한 대표적인 스마트 카드와 특수하게 프로그래밍된 특정 동작을 나타내는 특수 카드가 모두 관련된 작업이 포함됩니다. 일반적으로 사용 가능한 카드를 사용하는 테스트 사례는 다양한 통신 속도 및 프로토콜 조합을 나타내도록 선택한 카드에서 일상적인 작업을 수행합니다. 이러한 테스트는 카드 세트 2로 변경되었습니다.
리소스 관리자 상태 테스트 사례
파트 A
카드 모니터 테스트 사례는 스마트 카드 삽입 상태의 올바른 검색과 예기치 않은 카드 제거로 인해 중단된 작업의 올바른 처리를 확인합니다.
IOCTL_SMARTCARD_IS_PRESENT를 사용하여 빈 판독기의 검색을 테스트
IOCTL_SMARTCARD_IS_PRESENT를 사용하여 삽입된 카드의 검색을 테스트
IOCTL_SMARTCARD_IS_ABSENT를 사용하여 삽입된 카드의 제거를 테스트
15초 동안 시간이 임의로 제한된 카드 삽입의 올바른 처리 및 제거 작업을 테스트
- IOCTL_SMARTCARD_IS_PRESENT 및 IOCTL_SMARTCARD_IS_ABSENT가 유효한 결과를 생성하는지 확인
파트 C
리소스 관리자 테스트 사례는 일반적으로 스마트 카드 리소스 관리자가 명령할 것으로 예상되는 상태 변경 작업이 성공적으로 완료되었는지 확인
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: 길이가 0이 아닌 문자열
SCARD_ATTR_VENDOR_IFD_TYPE: 길이가 0이 아닌 문자열
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: 길이가 0이 아닌 문자열
SCARD_ATTR_VENDOR_IFD_TYPE: 길이가 0이 아닌 문자열
SCARD_ATTR_DEVICE_UNIT: 길이가 4바이트 이상인 값
SCARD_ATTR_ATR_STRING: 읽기 시도 성공
SCARD_ATTR_DEFAULT_CLK : value 1000 <= value <= 20000
SCARD_ATTR_MAX_CLK : value 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: 상태 <= SCARD_SWALLOWED를 사용하여 카드가 제거된 상태에서 카드 상태 읽기
카드 초기화: 결과가 ERROR_UNRECOGNIZED_MEDIA인지 확인
카드 프로토콜 테스트 사례
파트 D
Infineon 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 요청 파일 ID 0004
파일 0005에 대한 읽기로 인해 강제 시간 초과 - ERROR_IO_DEVICE 예상
결과 파일(A000) 읽기 및 처리, 구문 분석 및 오류 보고
Athena T0 테스트 카드(카드 1)
ATR: 3B D6 18 00 80 B1 80 6D
1F 03 80 51 00 61 10 30
9E
긴(약 900mSec) 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 예상
카드 초기화
1개, 2개, 5개 및 30개 확장의 확장 수에 대한 요청 대기 시간 확장을 테스트하기 위해 카드에 에코 명령 보내기, 성공 예상
Athena\Inverse Convention 테스트 카드(카드 2)
ATR: 3F 96 18 80 01 80 51 00
61 10 30 9F
긴(약 900mSec) 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 예상
카드 초기화
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바이트 응답, 성공 예상
Infineon 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 선택, 성공 예상
바이트 값 55의 128바이트 블록 쓰기, 다시 읽기 및 확인, 성공 예상
바이트 값 AA의 128바이트 블록 쓰기, 다시 읽기 및 확인, 성공 예상
바이트 값 00의 128바이트 블록 쓰기, 다시 읽기 및 확인, 성공 예상
바이트 값 FF의 128바이트 블록 쓰기, 다시 읽기 및 확인, 성공 예상
존재하지 않는 파일 7777 선택, 9404 예상
MF를 00 a4 00 00으로 선택, 90 00(성공) 예상
잘못된 파일 77 선택, 94 04 예상
잘못된 형식 보내기(Lc가 데이터 길이와 일치하지 않음) 명령 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
4개의 전원 관리 테스트 사례를 완료하려면 파트 D에 대한 화면의 지침에 따릅니다. 메시지가 표시되면 테스트 스마트 카드 판독기에 스마트 카드를 삽입하거나 제거하고 테스트 컴퓨터를 최대 절전 모드로 전환하거나 다시 시작합니다.
테스트 1 카드 제거/카드 제거 테스트 사례를 실행하려면 다음을 수행합니다.
테스트 스마트 카드 판독기에서 스마트 카드를 제거합니다.
컴퓨터가 15초 후에 자동으로 최대 절전 모드로 전환됩니다.
컴퓨터가 30~60초 동안 최대 절전 모드로 전환되도록 허용합니다.
컴퓨터 전원 단추를 눌러 컴퓨터를 최대 절전 모드에서 해제하고 테스트를 계속합니다.
메시지가 표시되면 테스트 스마트 카드 판독기에 스마트 카드를 다시 삽입합니다.
테스트 2 카드 삽입/카드 제거 테스트 사례를 실행하려면 다음을 수행합니다.
스마트 카드가 테스트 스마트 카드 판독기 안에 있는지 확인합니다.
컴퓨터가 15초 후에 자동으로 최대 절전 모드로 전환됩니다.
컴퓨터가 30~60초 동안 최대 절전 모드로 전환되도록 허용합니다.
테스트 스마트 카드 판독기에서 스마트 카드를 제거합니다.
컴퓨터 전원 단추를 눌러 컴퓨터를 최대 절전 모드에서 해제합니다.
메시지가 표시되면 다음 테스트 사례를 시작하기 전에 테스트 스마트 카드 판독기에 스마트 카드를 다시 삽입합니다.
테스트 3 카드 삽입/카드 삽입 테스트 사례를 실행하려면 다음을 수행합니다.
스마트 카드가 테스트 스마트 카드 판독기 안에 있는지 확인합니다.
컴퓨터가 15초 후에 자동으로 최대 절전 모드로 전환됩니다.
컴퓨터가 30~60초 동안 최대 절전 모드로 전환되도록 허용합니다.
컴퓨터 전원 단추를 눌러 컴퓨터를 최대 절전 모드에서 해제합니다.
메시지가 표시되면 다음 테스트 사례를 시작하기 전에 테스트 스마트 카드 판독기에서 스마트 카드를 제거합니다.
테스트 4 카드 제거/카드 삽입 테스트 사례를 실행하려면 다음을 수행합니다.
테스트 스마트 카드 판독기에 스마트 카드가 없는지 확인합니다.
컴퓨터가 15초 후에 자동으로 최대 절전 모드로 전환됩니다.
컴퓨터가 30~60초 동안 최대 절전 모드로 전환되도록 허용합니다.
테스트 스마트 카드 판독기에 스마트 카드를 다시 삽입합니다.
컴퓨터 전원 단추를 눌러 컴퓨터를 최대 절전 모드에서 해제합니다. 스마트 카드 판독기 테스트가 완료되었습니다.
테스트 로그 파일을 봅니다.
다른 모든 필수 테스트를 실행합니다.
이 테스트 제출에 필요한 모든 테스트를 성공적으로 완료한 후 테스트 결과를 반환합니다.
명령 구문
HLK Studio 외부에서 이 명령을 실행하려면 스마트 카드 서비스를 중지하고 명령을 실행한 다음 스마트 카드 서비스를 시작해야 합니다.
명령 | 설명 |
---|---|
ifdtest2.exe -sa -sb -sc -se -sf |
테스트를 실행합니다. |
파일 목록
파일 | 위치 |
---|---|
ifdtest2.exe |
<testbinroot>\nttest\Driverstest\storage\wdk\ |
매개 변수
매개 변수 이름 | 매개 변수 설명 |
---|---|
LLU_NetAccessOnly | 테스트 파일 공유에 액세스하기 위한 사용자 계정입니다. |
LLU_LclAdminUsr | 테스트를 실행하기 위한 사용자 계정입니다. |