Partilhar via


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
  • Device.Input.SmartCardReader.SupportsInsertionAndRemovalMonitor
  • Device.Input.SmartCardReader.SupportsMinClockFrequency
  • Device.Input.SmartCardReader.SupportsMinDataRateOf9600bps
Plataformas
  • Windows 10, edições de cliente (x86)
  • Windows 10, edições de cliente (x64)
  • Windows Server 2016 (x64)
  • Windows 10, edições de cliente (Arm64)
Versões com suporte
  • Windows 10
  • Windows 10, versão 1511
  • Windows 10, versão 1607
  • Windows 10, versão 1703
  • Windows 10, versão 1709
  • Windows 10, versão 1803
  • Windows 10, versão 1809
  • Windows 10, versão 1903
  • Próxima atualização para Windows 10
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.

  1. Testar a detecção de leitores vazios usando IOCTL_SMARTCARD_IS_PRESENT

  2. Testar a detecção de cartão inseridas usando IOCTL_SMARTCARD_IS_PRESENT

  3. Testar a remoção de cartão inseridas usando IOCTL_SMARTCARD_IS_ABSENT

  4. 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.

  1. Verificar se IOCTL_SMARTCARD_GET_STATE é bem-sucedido sem cartão

  2. Verificar se o estado retornado é válido

  3. Verificar o retorno correto do IOCTL_SMARTCARD_IS_PRESENT

  4. Verificar o retorno correto do IOCTL_SMARTCARD_IS_ABSENT

  5. O operador insere um cartão

  6. Verificar se IOCTL_SMARTCARD_GET_STATE é bem-sucedido com cartão inserido

  7. Verificar se o estado retornado é válido

  8. Verificar o retorno correto do IOCTL_SMARTCARD_IS_ABSENT

  9. Redefinição a frio do cartão

  10. Verificar se cartão estado está SCARD_NEGOTIABLE

  11. Definir o Protocolo de Cartão como T0 ou T1

  12. Verificar o êxito do IOCTL_SMARTCARD_POWER para desativar o cartão

  13. O operador remove o cartão

  14. 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.

  1. O operador remove todos os cartões

  2. O operador hiberna o computador

  3. O operador inicia o computador

  4. Verificar o estado do leitor SCARD_ABSENT no retorno da hibernação

  5. Operador Insere cartão

  6. O operador hiberna o computador

  7. O operador inicia o computador

  8. Verificar o estado do leitor SCARD_PRESENT no retorno da hibernação

  9. O operador remove cartão

  10. O operador hiberna o computador

  11. O operador remove cartão durante a hibernação

  12. O operador inicia o computador

  13. Verificar o estado do leitor SCARD_ABSENT no retorno da hibernação

  14. Computador de hibernação do operador

  15. O operador insere cartão durante a hibernação

  16. O operador inicia o computador

  17. 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.

  1. Verificar atributos relatados pelo leitor com um exemplo cartão inserido

  2. Teste se o nome do dispositivo relatado pelo driver é compatível com PnP do WDM

  3. Teste se o driver lida corretamente com solicitações de leitura de atributo com buffer de retorno NULL

  4. 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

  5. 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

  6. 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

  7. Ler cartão estado com cartão removido usando IOCTL_SMARTCARD_GET_STATE : state <= SCARD_SWALLOWED

  8. 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

  1. Tentativa de leitura com buffer muito pequeno

  2. Solicitação de extensão de tempo de espera – rotear a figura da solicitação para o arquivo 0001, ler novamente e verificar

  3. 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

  4. 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

  5. Sequência de blocos incorreta ao ler para o arquivo 0003 – espere ERROR_IO_DEVICE

  6. Ifsc request file id 0004

  7. Forçar o tempo limite ao ler para o arquivo 0005 – espere ERROR_IO_DEVICE

  8. 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

  1. Redefinir com tempo de transmissão de ATR longo (aproximadamente 900 mSec)

  2. Definir Protocolo como T0, esperar êxito

  3. Apagar todos os arquivos cartão por comando proprietário, esperar êxito

  4. Criar arquivo de teste 0002, esperar êxito

  5. Selecione o arquivo de teste 0002 e espere êxito

  6. Gravar 256 bytes como 4 blocos de 64 bytes, esperar sucesso

  7. Ler e verificar 256 bytes como 4 blocos de 64 bytes, esperar sucesso

  8. 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

  9. Defina o buffer de recebimento como 9 bytes e tente receber 10 bytes de resposta de cartão, espere ERROR_INSUFFICIENT BUFFER

  10. Enviar malformado (Lc inconsistente com o comprimento dos dados) selecione o comando 00 a 4 00 00 08 00, espere ERROR_INVALID_PARAMETER

  11. Selecione arquivo inexistente, espere 6A 82

  12. Envie o comando para silenciar o cartão (80 00 01 00 01 11), espere ERROR_SEM_TIMEOUT

  13. Redefinir o cartão

  14. 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

  1. Redefinir com tempo de transmissão de ATR longo (aproximadamente 900 mSec)

  2. Definir Protocolo como T0, esperar êxito

  3. Apagar todos os arquivos cartão por comando proprietário, esperar êxito

  4. Criar arquivo de teste 0002, esperar êxito

  5. Selecione o arquivo de teste 0002 e espere êxito

  6. Gravar 256 bytes como 4 blocos de 64 bytes, esperar sucesso

  7. Ler e verificar 256 bytes como 4 blocos de 64 bytes, esperar sucesso

  8. 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

  9. Defina o buffer de recebimento como 9 bytes e tente receber 10 bytes de resposta de cartão, espere ERROR_INSUFFICIENT BUFFER

  10. Enviar malformado (Lc inconsistente com o comprimento dos dados) selecione o comando 00 a 4 00 00 08 00, espere ERROR_INVALID_PARAMETER

  11. Selecione arquivo inexistente, espere 6A 82

  12. Envie o comando para silenciar o cartão (80 00 01 00 01 11), espere ERROR_SEM_TIMEOUT

  13. Redefinir o cartão

  14. 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

  1. Tentativa de definir protocolo T=1, espere ERROR_NOT_SUPPORTED

  2. Definir protocolo T=0

  3. Autenticar usando cartão chave de transporte, espere êxito

  4. 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

  5. Criar novo arquivo de teste 0055, esperar êxito

  6. Blocos de gravação de teste 1, 25, 75, 128 bytes para testar o arquivo, espere êxito

  7. Testar a leitura de 128 bytes do arquivo de teste, comparar dados, esperar êxito

  8. Excluir arquivo de teste 0055, esperar êxito

  9. Criar arquivo PIN, esperar êxito

  10. Defina o PIN do usuário como 00000000, espere êxito

  11. Criar arquivo de chave privada, esperar êxito

  12. Criar arquivo de chave pública, esperar êxito

  13. Selecionar arquivo de chave privada, esperar êxito

  14. Autenticar usuário que tem PIN, esperar êxito

  15. Gerar par de chaves, esperar sucesso

  16. Dados de hash de 16 bytes, espere sucesso

  17. 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

  1. Tentativa de definir o protocolo T=0, espere ERROR_NOT_SUPPORTED

  2. Definir protocolo T=1, esperar êxito

  3. Autenticar usando 12345678 DE PIN, esperar sucesso

  4. Remover arquivos de execuções anteriores se existentes

  5. Criar novo arquivo de teste 0007, esperar êxito

  6. Selecione o arquivo 0007, espere sucesso

  7. Registrar a hora do sistema

  8. 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

  9. Obter tempo do sistema e mostrar o tempo decorrido em segundos para a conclusão do teste

  10. Selecione o arquivo 0007, espere sucesso

  11. Bloco de 128 bytes de gravação do valor de byte 55, Read back e verify, expect success

  12. Gravar bloco de 128 bytes do valor de byte AA, Ler de volta e verificar, esperar êxito

  13. Bloco de 128 bytes de gravação do valor de byte 00, Read back e verify, expect success

  14. Bloco de 128 bytes de gravação do valor de byte FF, Read back e verify, expect success

  15. Selecione o arquivo inexistente 7777, espere 9404

  16. Selecione MF por 00 a 4 00 00, espere 90 00 (êxito)

  17. Selecione o arquivo 77 inválido, espere 94 04

  18. Enviar malformado (Lc inconsistente com comprimento de dados) selecione o comando 00 a 4 00 00 08 00, espere 94 04

  19. Enviar comando selecionado malformado (muito curto) por 00 a 4 00, espere 67 00

  20. Criar DF 5555 a partir do MF, esperar sucesso

  21. Selecione em 5555, espere sucesso

  22. Criar DF 5656 a partir de 5555, esperar sucesso

  23. Selecione em 5656, espere sucesso

  24. Criar Arquivo 5757 no DF 5656, esperar sucesso

  25. Selecione esse arquivo do MF por caminho completo, espere êxito

  26. Gravar 8 bytes no arquivo, Ler novamente e verificar, esperar êxito

  27. Excluir o arquivo selecionado, esperar êxito

  28. Tente selecionar esse arquivo por caminho completo, espere 94 04

  29. Selecione e exclua o DF 5656, espere sucesso

  30. Selecione e exclua o DF 5555, espere sucesso

  31. 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:

  1. Remova o cartão inteligente do leitor de cartão inteligente de teste.

  2. O computador hibernará automaticamente após 15 segundos.

  3. Permitir que o computador hibernar por 30 a 60 segundos.

  4. Pressione o botão de energia do computador para tirar o computador da hibernação e continuar o teste.

  5. 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:

  1. Verifique se a cartão inteligente está no leitor de cartão inteligente de teste.

  2. O computador hibernará automaticamente após 15 segundos.

  3. Permitir que o computador hibernar por 30 a 60 segundos.

  4. Remova o cartão inteligente do leitor de cartão inteligente de teste.

  5. Pressione o botão de energia do computador para tirar o computador da hibernação.

  6. 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:

  1. Verifique se a cartão inteligente está no leitor de cartão inteligente de teste.

  2. O computador hibernará automaticamente após 15 segundos.

  3. Permitir que o computador hibernar por 30 a 60 segundos.

  4. Pressione o botão de energia do computador para tirar o computador da hibernação.

  5. 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:

  1. Verifique se não há cartão inteligentes no leitor de cartão inteligente de teste.

  2. O computador hibernará automaticamente após 15 segundos.

  3. Permitir que o computador hibernar por 30 a 60 segundos.

  4. Reinserir o cartão inteligente no leitor de cartão inteligente de teste.

  5. 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.

  6. Exiba os arquivos de log de teste.

  7. Execute todos os outros testes necessários.

  8. 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.