Ifdtest2 Partes A B & C (LOGOTIPO do Leitor de SC) – (Teste Manual)
Esse teste verifica a funcionalidade do leitor de cartão inteligente validando os cartões de teste do grupo de trabalho pc/SC. Você pode executar as partes A, B e C com qualquer cartão inteligente.
Detalhes do teste
Especificações |
|
Plataformas |
|
Versões com suporte |
|
Tempo de execução esperado (em minutos) | 5 |
Categoria | Compatibilidade |
Tempo limite (em minutos) | 300 |
Requer reinicialização | false |
Requer configuração especial | false |
Tipo | automático |
Documentação adicional
Os testes nessa área de recurso podem ter documentação adicional, incluindo pré-requisitos, configuração e informações de solução de problemas, que podem ser encontradas nos tópicos a seguir:
Executando o teste
Antes de executar o teste, conclua a configuração de teste conforme descrito nos requisitos de teste: Pré-requisitos de teste de leitor de cartão inteligente.
Solucionando problemas
Para solução de problemas genéricos de falhas de teste do HLK, consulte Solução de problemas de falhas de teste do Windows HLK.
Para obter informações de solução de problemas, consulte Solução de problemas de teste de device.input.
Mais informações
Esse teste verifica a funcionalidade do leitor de cartão inteligente validando a revisão dois dos cartões de teste do grupo de trabalho pc/SC.
O teste e seu hardware devem ser capazes de executar testes IFD específicos e produzir um relatório de teste. Requisitos específicos lidam com operação nominal e operação excepcional (condições de erro). Além disso, eles devem ser aplicados a todos os protocolos compatíveis com o subsistema leitor.
Um arquivo de configuração precisa ser fornecido para os seguintes tipos de leitores de cartão inteligentes:
- Contactless
- Máquina
- Requer rede
O arquivo de configuração deve ser nomeado ifdtest_config.xml e deve ser colocado em C:\SmartCardReaderTest. O snippet a seguir mostra um arquivo de configuração de exemplo:
<SmartCardReader>
<Version>1</Version>
<Contactless>False</Contactless>
<Virtual>False</Virtual>
<Network>False</Network>
</SmartCardReader>
IFDTEST2 executa casos de teste em três trabalhos de teste separados: os testes de Interface do Leitor são executados sem nada inserido no leitor. Resource Manager casos de teste de status são executados como um exemplo cartão é inserido e removido do leitor e manipulação de cartão detecção de inserção em várias condições (qualquer cartão pode ser usado para esse teste).
Os testes de Protocolo de Cartão envolvem a operação com cartões inteligentes normalmente disponíveis representativos inseridos e com cartões especiais que exibem determinado comportamento especialmente programado. Os casos de teste que usam cartões normalmente disponíveis executarão operações de rotina em cartões selecionados para representar uma variedade de combinações de velocidade de comunicação e protocolo. Esses testes foram alterados com o conjunto de cartão 2.
Casos de teste de status do Resource Manager
Parte A
O cartão monitorar casos de teste marcar para detecção correta do estado de inserção de cartão inteligente e tratamento correto de operações interrompidas pela remoção inesperada do cartão.
Testar a detecção de leitores vazios usando IOCTL_SMARTCARD_IS_PRESENT
Testar a detecção de cartão inseridas usando IOCTL_SMARTCARD_IS_PRESENT
Testar a remoção de cartão inseridas usando IOCTL_SMARTCARD_IS_ABSENT
Testar o tratamento correto de ações de inserção e remoção de cartão tempo aleatório por 15 segundos
- Verifique se IOCTL_SMARTCARD_IS_PRESENT e IOCTL_SMARTCARD_IS_ABSENT produzir resultados válidos
Parte C
Os casos de teste do gerenciador de recursos verificam a conclusão bem-sucedida das operações de alteração de estado normalmente esperadas para serem comandadas pelo gerenciador de recursos de cartão inteligente.
Verificar se IOCTL_SMARTCARD_GET_STATE é bem-sucedido sem cartão
Verificar se o estado retornado é válido
Verificar o retorno correto do IOCTL_SMARTCARD_IS_PRESENT
Verificar o retorno correto do IOCTL_SMARTCARD_IS_ABSENT
O operador insere um cartão
Verificar se IOCTL_SMARTCARD_GET_STATE é bem-sucedido com cartão inserido
Verificar se o estado retornado é válido
Verificar o retorno correto do IOCTL_SMARTCARD_IS_ABSENT
Redefinição a frio do cartão
Verificar se cartão estado está SCARD_NEGOTIABLE
Definir o Protocolo de Cartão como T0 ou T1
Verificar o êxito do IOCTL_SMARTCARD_POWER para desativar o cartão
O operador remove o cartão
Verificar se IOCTL_SMARTCARD_GET_STATE é bem-sucedido sem um cartão
Parte E
Os casos de teste de gerenciamento de energia verificam se o driver retorna as informações de estado corretas para o leitor em sequências de hibernação, mesmo quando o estado do leitor é alterado durante a hibernação por inserção ou remoção de um cartão.
O operador remove todos os cartões
O operador hiberna o computador
O operador inicia o computador
Verificar o estado do leitor SCARD_ABSENT no retorno da hibernação
Operador Insere cartão
O operador hiberna o computador
O operador inicia o computador
Verificar o estado do leitor SCARD_PRESENT no retorno da hibernação
O operador remove cartão
O operador hiberna o computador
O operador remove cartão durante a hibernação
O operador inicia o computador
Verificar o estado do leitor SCARD_ABSENT no retorno da hibernação
Computador de hibernação do operador
O operador insere cartão durante a hibernação
O operador inicia o computador
Verificar SCARD_PRESENT de estado do leitor no retorno da hibernação
Casos de teste da interface do leitor
Parte B
Os casos de teste da interface do leitor marcar para a propriedade de implementação correta e as informações de estado no driver de leitor.
Verificar atributos relatados pelo leitor com um exemplo cartão inserido
Teste se o nome do dispositivo relatado pelo driver é compatível com PnP do WDM
Teste se o driver lida corretamente com solicitações de leitura de atributo com buffer de retorno NULL
Teste se o driver para corretamente as solicitações de E/S pendentes se o driver estiver fechado e reaberto com uma operação de E/S pendente
Testar atributos de leitura sem cartão inseridos
SCARD_ATTR_VENDOR_NAME : cadeia de caracteres de comprimento diferente de zero
SCARD_ATTR_VENDOR_IFD_TYPE : cadeia de caracteres de comprimento diferente de zero
SCARD_ATTR_DEVICE_UNIT: um valor de comprimento de 4 bytes ou maior
SCARD_ATTR_ATR_STRING: falha na tentativa de leitura
SCARD_ATTR_DEFAULT_CLK: 1000 <= value <= 20000
SCARD_ATTR_MAX_CLK: 1000 <= value <= 20000
SCARD_ATTR_DEFAULT_DATA_RATE: a tentativa de leitura é bem-sucedida
SCARD_ATTR_MAX_DATA_RATE: tentativa de leitura é bem-sucedida
SCARD_ATTR_MAX_IFSD: 1 <= value <= 254
SCARD_ATTR_CURRENT_PROTOCOL_TYPE: falha na tentativa de leitura
Testar atributos de leitura com um cartão inserido
SCARD_ATTR_VENDOR_NAME : cadeia de caracteres de comprimento diferente de zero
SCARD_ATTR_VENDOR_IFD_TYPE : cadeia de caracteres de comprimento diferente de zero
SCARD_ATTR_DEVICE_UNIT: um valor de comprimento de 4 bytes ou maior
SCARD_ATTR_ATR_STRING: tentativa de leitura é bem-sucedida
SCARD_ATTR_DEFAULT_CLK : value 1000 <= value <= 20000
SCARD_ATTR_MAX_CLK: value 1000 <= value <= 20000
SCARD_ATTR_DEFAULT_DATA_RATE: a tentativa de leitura é bem-sucedida
SCARD_ATTR_MAX_DATA_RATE: tentativa de leitura é bem-sucedida
SCARD_ATTR_MAX_IFSD: 1 <= value <= 254
SCARD_ATTR_CURRENT_PROTOCOL_TYPE : value = 0
Ler cartão estado com cartão removido usando IOCTL_SMARTCARD_GET_STATE : state <= SCARD_SWALLOWED
Redefinir cartão: verificar se o resultado está ERROR_UNRECOGNIZED_MEDIA
Casos de teste de protocolo de cartão
Parte D
Cartão de Teste de Conformidade do INfineon Technologies PC/SC (Cartão 0/Sem rótulo)
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
Tentativa de leitura com buffer muito pequeno
Solicitação de extensão de tempo de espera – rotear a figura da solicitação para o arquivo 0001, ler novamente e verificar
Teste de ressincronização de encadeamento de blocos no arquivo 0002: cartão aceita o primeiro bloco. Em seguida, solicita repetidamente a retransmissão do bloco 2; ressincronizações de host – espere ERROR_IO_DEVICE
Teste de ressincronização de encadeamento de blocos no arquivo 0002: cartão declara repetidamente o erro EDC no bloco 2; ressincronizações de host – espere ERROR_IO_DEVICE
Sequência de blocos incorreta ao ler para o arquivo 0003 – espere ERROR_IO_DEVICE
Ifsc request file id 0004
Forçar o tempo limite ao ler para o arquivo 0005 – espere ERROR_IO_DEVICE
Ler e processar o arquivo de resultados (A000), analisar e relatar erros
Cartão de Teste Athena T0 (Cartão 1)
ATR: 3B D6 18 00 80 B1 80 6D
1F 03 80 51 00 61 10 30
9E
Redefinir com tempo de transmissão de ATR longo (aproximadamente 900 mSec)
Definir Protocolo como T0, esperar êxito
Apagar todos os arquivos cartão por comando proprietário, esperar êxito
Criar arquivo de teste 0002, esperar êxito
Selecione o arquivo de teste 0002 e espere êxito
Gravar 256 bytes como 4 blocos de 64 bytes, esperar sucesso
Ler e verificar 256 bytes como 4 blocos de 64 bytes, esperar sucesso
Escreva 255 bytes como um único bloco, espere êxito. O cartão receberá os bytes no modo de byte único até que 8 bytes permaneçam, momento em que o restante dos dados será solicitado do host como um único bloco, espere êxito
Defina o buffer de recebimento como 9 bytes e tente receber 10 bytes de resposta de cartão, espere ERROR_INSUFFICIENT BUFFER
Enviar malformado (Lc inconsistente com o comprimento dos dados) selecione o comando 00 a 4 00 00 08 00, espere ERROR_INVALID_PARAMETER
Selecione arquivo inexistente, espere 6A 82
Envie o comando para silenciar o cartão (80 00 01 00 01 11), espere ERROR_SEM_TIMEOUT
Redefinir o cartão
Enviar comando de eco para cartão testar a extensão de tempo de espera da solicitação para contagens de extensão de 1, 2, 5 e 30 extensões, espere êxito
Cartão de teste da Convenção Athena\Inverse (Cartão 2)
ATR: 3F 96 18 80 01 80 51 00
61 10 30 9F
Redefinir com tempo de transmissão de ATR longo (aproximadamente 900 mSec)
Definir Protocolo como T0, esperar êxito
Apagar todos os arquivos cartão por comando proprietário, esperar êxito
Criar arquivo de teste 0002, esperar êxito
Selecione o arquivo de teste 0002 e espere êxito
Gravar 256 bytes como 4 blocos de 64 bytes, esperar sucesso
Ler e verificar 256 bytes como 4 blocos de 64 bytes, esperar sucesso
Escreva 255 bytes como um único bloco, espere êxito. O cartão receberá os bytes no modo de byte único até que 128 bytes permaneçam, momento em que o restante dos dados será solicitado do host como um único bloco, espere êxito
Defina o buffer de recebimento como 9 bytes e tente receber 10 bytes de resposta de cartão, espere ERROR_INSUFFICIENT BUFFER
Enviar malformado (Lc inconsistente com o comprimento dos dados) selecione o comando 00 a 4 00 00 08 00, espere ERROR_INVALID_PARAMETER
Selecione arquivo inexistente, espere 6A 82
Envie o comando para silenciar o cartão (80 00 01 00 01 11), espere ERROR_SEM_TIMEOUT
Redefinir o cartão
Enviar comando de eco para cartão testar a extensão de tempo de espera da solicitação para contagens de extensão de 1, 2, 5 e 30 extensões, espere êxito
Cartão de teste Axalto 32K eGate (Cartão 3)
ATR: 3B 95 18 40 FF 62 01 02
01 04
Tentativa de definir protocolo T=1, espere ERROR_NOT_SUPPORTED
Definir protocolo T=0
Autenticar usando cartão chave de transporte, espere êxito
Limpar cartão estado excluindo arquivos de execuções anteriores (remover arquivos de chave pública e privada RSA, o arquivo PIN do usuário e o arquivo de teste), espere êxito
Criar novo arquivo de teste 0055, esperar êxito
Blocos de gravação de teste 1, 25, 75, 128 bytes para testar o arquivo, espere êxito
Testar a leitura de 128 bytes do arquivo de teste, comparar dados, esperar êxito
Excluir arquivo de teste 0055, esperar êxito
Criar arquivo PIN, esperar êxito
Defina o PIN do usuário como 00000000, espere êxito
Criar arquivo de chave privada, esperar êxito
Criar arquivo de chave pública, esperar êxito
Selecionar arquivo de chave privada, esperar êxito
Autenticar usuário que tem PIN, esperar êxito
Gerar par de chaves, esperar sucesso
Dados de hash de 16 bytes, espere sucesso
Obter dados de resposta para a operação de hash, resposta de 20 bytes + 2 bytes, esperar sucesso
Cartão de Teste do Módulo de Cartão SiCrypt do Infineon (Cartão 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
Tentativa de definir o protocolo T=0, espere ERROR_NOT_SUPPORTED
Definir protocolo T=1, esperar êxito
Autenticar usando 12345678 DE PIN, esperar sucesso
Remover arquivos de execuções anteriores se existentes
Criar novo arquivo de teste 0007, esperar êxito
Selecione o arquivo 0007, espere sucesso
Registrar a hora do sistema
Blocos de teste de gravação de 1, 25, 50, 75, 100, 125, 128 bytes no cartão – Ler e verificar os dados após cada gravação de bloco, esperar sucesso
Obter tempo do sistema e mostrar o tempo decorrido em segundos para a conclusão do teste
Selecione o arquivo 0007, espere sucesso
Bloco de 128 bytes de gravação do valor de byte 55, Read back e verify, expect success
Gravar bloco de 128 bytes do valor de byte AA, Ler de volta e verificar, esperar êxito
Bloco de 128 bytes de gravação do valor de byte 00, Read back e verify, expect success
Bloco de 128 bytes de gravação do valor de byte FF, Read back e verify, expect success
Selecione o arquivo inexistente 7777, espere 9404
Selecione MF por 00 a 4 00 00, espere 90 00 (êxito)
Selecione o arquivo 77 inválido, espere 94 04
Enviar malformado (Lc inconsistente com comprimento de dados) selecione o comando 00 a 4 00 00 08 00, espere 94 04
Enviar comando selecionado malformado (muito curto) por 00 a 4 00, espere 67 00
Criar DF 5555 a partir do MF, esperar sucesso
Selecione em 5555, espere sucesso
Criar DF 5656 a partir de 5555, esperar sucesso
Selecione em 5656, espere sucesso
Criar Arquivo 5757 no DF 5656, esperar sucesso
Selecione esse arquivo do MF por caminho completo, espere êxito
Gravar 8 bytes no arquivo, Ler novamente e verificar, esperar êxito
Excluir o arquivo selecionado, esperar êxito
Tente selecionar esse arquivo por caminho completo, espere 94 04
Selecione e exclua o DF 5656, espere sucesso
Selecione e exclua o DF 5555, espere sucesso
Selecione e exclua o arquivo 0007, espere êxito
Executando o teste de leitor de cartão
Aviso
Para os casos de teste de gerenciamento de energia na Parte D, o computador hibernará e talvez seja necessário remover ou reinserir um cartão inteligente no leitor de cartão inteligente de teste.
Partes A, B, C e E
Siga as instruções na tela para as Partes A, B, C e E usando os cartões do teste de grupo de trabalho pc/SC cartão-set 2. Quando for solicitado, insira e remova cada cartão inteligente do leitor de cartão inteligente de teste.
Parte D
Siga as instruções na tela da Parte D para concluir os quatro casos de teste de gerenciamento de energia. Quando solicitado, insira ou remova o cartão inteligente do leitor de cartão inteligente de teste e hibernar ou reiniciar o computador de teste.
Para executar o caso de teste De Saída/Saída de Cartão de Teste 1:
Remova o cartão inteligente do leitor de cartão inteligente de teste.
O computador hibernará automaticamente após 15 segundos.
Permitir que o computador hibernar por 30 a 60 segundos.
Pressione o botão de energia do computador para tirar o computador da hibernação e continuar o teste.
Quando for solicitado, reinsira o cartão inteligente no leitor de cartão inteligente de teste.
Para executar o caso de teste Entrada/Saída do Cartão de Teste 2:
Verifique se a cartão inteligente está no leitor de cartão inteligente de teste.
O computador hibernará automaticamente após 15 segundos.
Permitir que o computador hibernar por 30 a 60 segundos.
Remova o cartão inteligente do leitor de cartão inteligente de teste.
Pressione o botão de energia do computador para tirar o computador da hibernação.
Quando for solicitado, reinsira o cartão inteligente no leitor de cartão inteligente de teste antes de iniciar o próximo caso de teste.
Para executar o cartão de teste 3 no cartão/no caso de teste:
Verifique se a cartão inteligente está no leitor de cartão inteligente de teste.
O computador hibernará automaticamente após 15 segundos.
Permitir que o computador hibernar por 30 a 60 segundos.
Pressione o botão de energia do computador para tirar o computador da hibernação.
Quando for solicitado, remova o cartão inteligente do leitor de cartão inteligente de teste antes de iniciar o próximo caso de teste.
Para executar o Cartão de Saída/Cartão de Teste 4 no caso de teste:
Verifique se não há cartão inteligentes no leitor de cartão inteligente de teste.
O computador hibernará automaticamente após 15 segundos.
Permitir que o computador hibernar por 30 a 60 segundos.
Reinserir o cartão inteligente no leitor de cartão inteligente de teste.
Pressione o botão de energia do computador para tirar o computador da hibernação. O teste de leitor de cartão inteligente foi concluído.
Exiba os arquivos de log de teste.
Execute todos os outros testes necessários.
Depois de concluir com êxito todos os testes necessários para esse envio de teste, retorne os resultados do teste.
Sintaxe de comando
Para executar esse comando fora do HLK Studio, você deve interromper o serviço cartão inteligente, executar o comando e, em seguida, iniciar o serviço cartão inteligente.
Comando | Descrição |
---|---|
ifdtest2.exe -sd -se -sf |
Executa o teste. |
Lista de arquivos
Arquivo | Location |
---|---|
ifdtest2.exe |
<testbinroot>\nttest\Driverstest\storage\wdk\ |
Parâmetros
Nome do parâmetro | Descrição do parâmetro |
---|---|
LLU_NetAccessOnly | Conta de usuário para acessar o compartilhamento de arquivos de teste. |
LLU_LclAdminUsr | Conta de usuário para executar o teste. |