Compartilhar via


Teste de certificação de minidriver de cartão inteligente

Esse teste automatizado verifica a operação de minidrivers de cartão inteligentes e cartões inteligentes associados.

Minidrivers de cartão inteligentes são DLLs de software carregadas pelo CSP (Provedor de Serviços Criptográficos base) da Microsoft e pelo SCKSP (Provedor de Armazenamento de Chaves de Cartão Inteligente) da Microsoft para habilitar o acesso à funcionalidade do cartão inteligente associado. Para fornecedores de cartão inteligentes, esses minidrivers fornecem uma maneira mais simples de implementar a funcionalidade de cartão inteligentes em sistemas operacionais Microsoft Windows do que desenvolvendo um CSP (Provedor de Serviços Criptográficos) tradicional. (Os minidrivers de cartão historicamente inteligentes também eram chamados de módulos de cartão inteligentes ou módulos de cartão de cartão inteligente.)

Este teste executa testes funcionais, de estresse, de desempenho e de confiabilidade em um minidriver de cartão inteligente. Ele chama o Microsoft BaseCSP e o Provedor de Armazenamento de Chaves de Cartão Inteligente da Microsoft e acessa os métodos de minidriver cartão diretamente, para testar a correção da operação do minidriver cartão e do cartão associado. Ele também usa o cartão inteligente Resource Manager para acessar o cartão diretamente.

Detalhes do teste

   
Especificações
  • Device.Input.SmartCardMiniDriver.SupportMultipleInstancesOnASystem
  • Device.Input.SmartCardMiniDriver.DoNotStopWhenResourcesAreUnavailable
  • Device.Input.SmartCardMiniDriver.SpecsAndCertifications
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) 180
Categoria Compatibilidade
Tempo limite (em minutos) 10800
Requer reinicialização false
Requer configuração especial false
Tipo automático

 

Documentação adicional

Os testes nessa área de recursos podem ter documentação adicional, incluindo pré-requisitos, configuração e informações de solução de problemas, que podem ser encontrados 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.

Além disso, esse teste requer o hardware a seguir.

  • Leitores de cartão inteligentes certificados pela WHQL

Solucionando problemas

Para solucionar 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.

Além disso, para obter informações de solução de problemas específicas do cartão inteligente, consulte os seguintes sites:

Mais informações

Esse teste está localizado no Windows HLK Studio como um único trabalho, embora você também possa executar a ferramenta de fora do ambiente do Windows HLK Studio. Copie os binários do local especificado abaixo para um diretório de sua escolha e você pode executar a ferramenta de teste a partir daí. Talvez você também precise copiar o Wttlog.dll biblioteca compartilhada para o diretório de execução. Essa DLL é instalada com o aplicativo cliente Do Windows HLK.

Executar a ferramenta de teste fora do Windows HLK permite maior flexibilidade do que executar por meio do DTM, pois você pode selecionar testes individualmente. Para obter mais informações, consulte a descrição da linha de comando posteriormente neste documento.

Se você estiver executando o teste no Windows HLK, precisará apenas de um computador cliente. A documentação do Windows HLK explica como configurar o controlador do Windows HLK, o Windows HLK Studio e o aplicativo cliente Do Windows HLK no computador de teste.

As informações a seguir se aplicam ao computador no qual o teste está sendo executado, independentemente de você estar executando os testes dentro ou fora do ambiente do Windows HLK.

Para executar o teste, você deve ter seu minidriver de cartão inteligente instalado no computador e registrado no registro. (Além disso, para obter mais informações sobre a certificação em uma versão de 64 bits do sistema operacional, consulte a próxima seção, "Certificação em uma versão de 64 bits do sistema operacional"). E se seu dispositivo de cartão inteligente tiver o fator de formulário ISO 7816 ID-1, você deverá usar um leitor de cartão inteligente certificado pela WHQL compatível com PC/SC para certificação.

Para executar os testes, você deve ter dois cartões inteligentes idênticos no computador e ambos devem estar no estado preparado, onde preparado é definido pela Especificação do Minidriver de Cartão Inteligente para o CSP (Provedor de Serviços Criptográficos base) do Windows e o KSP (Provedor de Armazenamento de Chaves de Cartão Inteligente).

Os testes executados dependem dos recursos do minidriver de cartão inteligente. A funcionalidade do minidriver de cartão inteligente pode ser definida para a ferramenta de teste em um arquivo de configuração específico chamado cmck_config.xml, que você deve colocar no diretório C:\SmartCardMinidriverTest. A descrição desse arquivo e um exemplo a seguir.

Em uma execução de teste típica, se nenhum arquivo de configuração for encontrado, o teste solicitará que a confirmação continue usando valores padrão. No entanto, para um envio de logotipo, você deve fornecer um arquivo de configuração que corresponda à funcionalidade do minidriver e cartão combinação.

Os valores de chave padrão são os seguintes:

  • O pin de usuário padrão é 0000.

  • A chave de administração padrão para desafio/resposta é todos zeros.

Certificação em uma versão de 64 bits do sistema operacional

Ao certificar em uma versão de 64 bits do sistema operacional, você também deve ter a versão de 32 bits da DLL do minidriver instalada no sistema. Você pode colocar a DLL no subdiretório %systemroot%\syswow64. Você deve colocar as entradas do Registro para a versão de 32 bits da DLL em HKEY_LOCAL_MACHINE\SOFTWARE\wow6432Node\Microsoft\Cryptography\Calais\SmartCards.

Quando um aplicativo de 32 bits que usa o minidriver é executado, ele carrega a versão de 32 bits do minidriver.

Arquivo INF para um minidriver de cartão inteligente

Ao fazer um envio de certificação, você deve fornecer um arquivo .inf. Aqui está o arquivo .inf de exemplo para a arquitetura x86:

[Version]
Signature="$Windows NT$"
Class=SmartCard
ClassGuid={990A2BD7-E738-46c7-B26F-1CF8FB9F1391}
Provider=%ProviderName%
CatalogFile=delta.cat
DriverVer=06/21/2006,6.1.6473.1 

[DefaultInstall]
CopyFiles=System32_CopyFiles
AddReg=MiniDriver_AddReg

[Manufacturer]
%ProviderName%=CompanyName,NTx86,NTx86.6.1 

[CompanyName.NTx86]
%ScSuperCardDeviceName%=ScSuperCard_Install,SCFILTER\CID_51FF0800 

[CompanyName.NTx86.6.1]
%ScSuperCardDeviceName%=ScSuperCard61_Install,SCFILTER\CID_51FF0800 

[SourceDisksFiles]
supercm.dll=1

[SourceDisksNames]
1 = %MediaDescription% 

[ScSuperCard_Install.NT]
CopyFiles=System32_CopyFiles
AddReg=MiniDriver_AddReg 

[ScSuperCard61_Install.NT]
CopyFiles=System32_CopyFiles
AddReg=MiniDriver_AddReg 

[SCSuperCard61_Install.NT.Services]
Include=umpass.infNeeds=UmPass.Services

[UMPassService_Install]
DisplayName=%umpass.SVCDESC%

; Friendly Name of the Service
ServiceType    = 1                    ;SERVICE_KERNEL_DRIVER
StartType      = 3                    ;SERVICE_DEMAND_START
ErrorControl   = 1                    ;SERVICE_ERROR_NORMAL
ServiceBinary  = %12%\umpass.sys
LoadOrderGroup = Extended Base

[System32_CopyFiles]
supercm.dll

[MiniDriver_AddReg]
HKLM,%SmartCardName%,"ATR",0x00000001,3b,04,51,ff,08,00
HKLM,%SmartCardName%,"ATRMask",0x00000001,ff,ff,ff,ff,ff,ff
HKLM,%SmartCardName%,"Crypto Provider",0x00000000,"Microsoft Base Smart Card Crypto Provider"
HKLM,%SmartCardName%,"Smart Card Key Storage Provider",0x00000000,"Microsoft Smart Card Key Storage Provider"
HKLM,%SmartCardName%,"80000001",0x00000000,%SmartCardCardModule%

[DestinationDirs]
System32_CopyFiles=10,system32

[FriendlyName]
ScFriendlyName="Super Card"
; =================== Generic ==================================

[Strings]
ProviderName="ACME"
MediaDescription="Super Card Mini Driver Installation Disk"
SCSuperCardDeviceName="Super Card Mini-driver"
SmartCardName="SOFTWARE\Microsoft\Cryptography\Calais\SmartCards\Super Card"
SmartCardCardModule="supercm.dll"
umpass.SVCDESC = "Microsoft UMPass Driver" Inf file sample for x64 architecture: [Version]
Signature="$Windows NT$"
Class=SmartCard
ClassGuid={990A2BD7-E738-46c7-B26F-1CF8FB9F1391}
Provider=%ProviderName%
CatalogFile=delta.cat
DriverVer=06/21/2006,6.1.6473.1 

[DefaultInstall]
CopyFiles=System32_CopyFiles
CopyFiles=Syswow64_CopyFiles
AddReg=MiniDriver_AddReg 

[Manufacturer]
%ProviderName%=CompanyName,NTamd64,NTamd64.6.1 

[CompanyName.NTamd64]
%ScSuperCardDeviceName%=ScSuperCard_Install,SCFILTER\CID_51FF0800 

[CompanyName.NTamd64.6.1]
%ScSuperCardDeviceName%=ScSuperCard61_Install,SCFILTER\CID_51FF0800 

[SourceDisksFiles]
supercm64.dll=1
supercm.dll=1

[SourceDisksNames]
1 = %MediaDescription% 

[ScSuperCard_Install.NT]
CopyFiles=System32_CopyFiles
CopyFiles=Syswow64_CopyFiles
AddReg=MiniDriver_AddReg 

[ScSuperCard61_Install.NT]
CopyFiles=System32_CopyFiles
CopyFiles=Syswow64_CopyFiles
AddReg=MiniDriver_AddReg 

[SCSuperCard61_Install.NT.Services]
Include=umpass.inf
Needs=UmPass.Services

[UMPassService_Install]
DisplayName    = %umpass.SVCDESC%

; Friendly Name of the Service
ServiceType    = 1                    ;SERVICE_KERNEL_DRIVER
StartType      = 3                    ;SERVICE_DEMAND_START
ErrorControl   = 1                    ;SERVICE_ERROR_NORMAL
ServiceBinary  = %12%\umpass.sys
LoadOrderGroup = Extended Base

[System32_CopyFiles]
supercm.dll,supercm64.dll

[Syswow64_CopyFiles]
supercm.dll

[MiniDriver_AddReg]
HKLM,%SmartCardName%,"ATR",0x00000001,3b,04,51,ff,08,00
HKLM,%SmartCardName%,"ATRMask",0x00000001,ff,ff,ff,ff,ff,ff
HKLM,%SmartCardName%,"Crypto Provider",0x00000000,"Microsoft Base Smart Card Crypto Provider"
HKLM, %SmartCardName%,"Smart Card Key Storage Provider",0x00000000,"Microsoft Smart Card Key Storage Provider"
HKLM,%SmartCardName%,"80000001",0x00000000,%SmartCardCardModule%
HKLM,%SmartCardNameWOW64%,"ATR",0x00000001,3b,04,51,ff,08,00
HKLM,%SmartCardNameWOW64%,"ATRMask",0x00000001,ff,ff,ff,ff,ff,ff
HKLM,%SmartCardNameWOW64%,"Crypto Provider",0x00000000,"Microsoft Base Smart Card Crypto Provider"
HKLM,%SmartCardNameWOW64%,"Smart Card Key Storage Provider",0x00000000,"Microsoft Smart Card Key Storage Provider"
HKLM,%SmartCardNameWOW64%,"80000001",0x00000000,%SmartCardCardModule% 

[DestinationDirs]
System32_CopyFiles=10,system32
Syswow64_CopyFiles=10,syswow64 

[FriendlyName]
ScFriendlyName="Super Card" 
; =================== Generic ==================================

[Strings]
ProviderName="ACME"
MediaDescription="Super Card Mini Driver Installation Disk"
SCSuperCardDeviceName="Super Card Mini-driver"
SmartCardName="SOFTWARE\Microsoft\Cryptography\Calais\SmartCards\Super Card"
SmartCardNameWOW64="SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\SmartCards\Microsoft Virtual Card"
SmartCardCardModule="supercm.dll"
SmartCardCardModule64="supercm64.dll"
umpass.SVCDESC = "Microsoft UMPass Driver"

Descrição do arquivo de configuração do minidriver de cartão inteligente (cmck_config.xml)

CMCK_config.xml consiste em seções abaixo para V5, V6 e V7, dependendo das versões V5/V6/V7 compatíveis com o minidriver. Observe: as palavras-chave V5/V6/V7 são maiúsculas.

<CMCKConfig>
  <V5>...</V5>
  <V6>...</V6>
  <V7>...</V7>
</CMCKConfig>

Cada seção é preenchida com as marcas XML descritas abaixo. Observe também que cada seção pode ter configurações diferentes que dependem do que o minidriver dá suporte para essas versões.

Você pode definir os seguintes valores em cada seção do arquivo de configuração (na estrutura, conforme mostrado):

  • <A versão> é um campo obrigatório que define o número de versão do arquivo de configuração. Atualmente, a versão esperada é "2" do arquivo de configuração XML do CMCK para seções V6 e V7 e "1" para a seção V5.

  • <CardDefaults> contém parâmetros que são usados para a execução da certificação e para execuções de teste regulares.

    • <DefaultPins> – fixar valores que devem ser usados para funções relacionadas à autenticação

      <PinEntry><RoleID> – valor permitido: 1 a 7

      <Tipo> pinEntry><- valor permitido: "AlphanumericPinType", "ChallengeResponsePinType", "EmptyPinType", "ExternalPinType"

      <Valor> de PinEntry><– lista de bytes hexadecimal separados por espaço do pino. Valor padrão: "0x30 0x30 0x30 0x30" (ou seja, "0000")

      <PinEntry><Blocking> [BOOLEAN] – indica se o cartão dá suporte ao bloqueio do cartão para esse tipo de usuário quando o pino errado é apresentado muitas vezes. Padrão "True".

      <PinEntry><Linking> [BOOLEAN] – afirma que se esse pino estiver vinculado a outro pino, ou seja, alterar um pino fará com que o outro seja alterado. Padrão "False".

      <PinEntry><AllowZeroLength> [BOOLEAN] – indica se o cartão permite que o pino esteja vazio. Padrão "False".

  • <CardSupports> - define recursos opcionais compatíveis com o minidriver cartão ou cartão, como algoritmos, tipos de chave e assim por diante. O teste abordará os recursos com suporte.

    1. <MinimumVersion> [DWORD] contém a versão mínima da estrutura de CARD_DATA de contexto compatível com o minidriver cartão. Para obter mais informações, consulte a especificação do Minidriver de Cartão Inteligente. O valor permitido é "4", "5", "6", "7".

    2. <CurrentVersion> [DWORD] contém a versão da estrutura de CARD_DATA de contexto para a qual o minidriver cartão foi projetado. Para obter mais informações, consulte a especificação do Minidriver de Cartão Inteligente. O valor permitido é "5", "6", "7".

    3. <LoadingUnderCAPI> [BOOLEAN] será "True" se o minidriver cartão der suporte a ser carregado sob CAPI e for "False" caso contrário.

    4. <LoadingUnderCNG> [BOOLEAN] será "True" se o minidriver cartão der suporte a ser carregado em CNG e for "False" caso contrário. Observe que pelo menos um dos dois atributos deve ser "True" (CAPI ou CNG).

    5. <KeyImport> [BOOLEAN] será "True" se o minidriver cartão der suporte à importação de chave e for "False" caso contrário.

    6. <KeyTypes> contém uma lista separada por espaço de tipos de chave compatíveis com o minidriver cartão. Os valores permitidos são "AT_ECDH_P256", "AT_ECDH_P384", "AT_ECDH_P521", "AT_ECDSA_P256", "AT_ECDSA_P384" ou "AT_ECDSA_P521" para chaves ECC e "AT_SIGNATURE" ou "AT_KEYEXCHANGE" para chaves RSA. <OnCardPadding> [BOOLEAN] será "True" se houver suporte para preenchimento on-cartão e for "False" caso contrário.

    7. <PaddingAlgorithms> contém uma lista separada por espaço de algoritmos de preenchimento cartão com suporte (válidos somente quando <OnCardPadding> é "True"). Os valores permitidos são "CARD_PADDING_NONE", "CARD_PADDING_PKCS1" e "CARD_PADDING_PSS".

    8. <SignHashAlgorithms> contém uma lista separada por espaço de algoritmos de hash que o minidriver cartão dá suporte para assinatura (aiHashAlg na estrutura CARD_SIGNING_INFO). Os valores permitidos são "CALG_MD2", "CALG_MD4", "CALG_MD5", "CALG_SHA", "CALG_SHA1", "CALG_SHA_256", CALG_SHA_384" e CALG_SHA_512". Para obter mais detalhes, consulte a especificação do Minidriver de Cartão Inteligente.

    9. <SignHashFlags> contém uma lista separada por espaço de sinalizadores CryptSignHash compatíveis com o minidriver cartão. Os valores permitidos são "CRYPT_NOHASHOID" e "CRYPT_X931_FORMAT".

    10. <SignReturnBufferSize> [BOOLEAN] é "True" quando o minidriver cartão dá suporte ao valor CARD_BUFFER_SIZE_ONLY para dwSigningFlags na estrutura CARD_SIGNING_INFO. Para obter mais informações, consulte a especificação do Minidriver de Cartão Inteligente.

    11. <KDFTypes> contém uma lista separada por espaço de funções derivadas de chave que o minidriver cartão dá suporte. Os valores permitidos são "HASH", "HMAC", "TLS_PRF" e "SP800_56A_CONCAT". Para obter mais informações, consulte a especificação do Minidriver de Cartão Inteligente.

    12. <KDFHashAlgorithms> contém uma lista separada por espaço de algoritmos de hash que o minidriver cartão dá suporte para as funções de derivação de chave (KDF). A especificação do Minidriver de Cartão Inteligente contém mais detalhes. Os valores permitidos são definidos no arquivo de cabeçalho bcrypt.h e são os valores definidos por BCRYPT_XXXX_ALGORITHM (por exemplo, "SHA256" (BCRYPT_SHA256_ALGORITHM) ou "MD5" (BCRYPT_MD5_ALGORITHM)).

    13. <Uses2Key3DES> [BOOLEAN] será "True" se o minidriver cartão APENAS der suporte a 2 teclas 3DES. Quando esse valor for "False", ele indicará que o minidriver cartão usará 3 teclas 3DES padrão. O valor padrão é "False".

    14. <KDFHMACFlag [BOOLEAN] será "True" se o minidriver do cartão derlag> de BCRYPT_KDF_HMAC que tem o sinalizador de KDF_USE_SECRET_AS_HMAC_KEY_FLAG (consulte a documentação de CNG (Crypto Next Generation) disponível no CNG do MSDN para obter mais informações). Quando esse valor for "False", o teste fornecerá uma chave HMAC explícita e não definirá o sinalizador KDF_USE_SECRET_AS_HMAC_KEY_FLAG para testes afetados.

    15. <ChallengePadding>[BOOLEAN] será "True" se o retorno de cartão dados de desafio contiver um bit de preenchimento. O valor padrão é "False".

    16. <SupportsCardGetChallenge> [BOOLEAN] – "True" se o CM oferecer suporte à API CardGetChallenge (isso é usado para cartões somente leitura).

    17. <SupportsCardAuthenticateChallenge> [BOOLEAN] – "True" se o CM der suporte à API CardAuthenticateChallenge (isso é usado para cartões somente leitura).

    18. <SupportsCardGetChallengeEx> [BOOLEAN] - "True" se o CM oferecer suporte à API CardGetChallengeEx (isso é usado para cartões somente leitura).

    19. <SupportsCardUnblockPin> [BOOLEAN] - "True" se o CM for compatível com a API CardUnblockPin (isso é usado para cartões somente leitura).

    20. <SupportsCardChangeAuthenticator> [BOOLEAN] – "True" se o CM der suporte à API CardChangeAuthenticator (isso é usado para cartões somente leitura).

    21. <SupportsCardChangeAuthenticatorEx> [BOOLEAN] – "True" se o CM der suporte à API CardChangeAuthenticatorEx (isso é usado para cartões somente leitura).

  • <TestSuiteDefaults> contém parâmetros que influenciam apenas as execuções de teste. (A execução da certificação usa seus próprios valores padrão.)

    1. <O INF> contém informações sobre o arquivo INF usado no smartcard PnP.

      • <INFFile> contém o local e o nome do arquivo INF PnP de cartão inteligente, que corresponde ao smartcard/minidriver a ser testado. Isso é obrigatório para todos os minidrivers que não sejam minidriver de classe PIV/GICS in-box.
    2. <O registro em log> contém opções de log que se aplicam às execuções de teste

      1. <LogFile> contém o local e o nome do arquivo de arquivo para o arquivo de log XML. O padrão é "CMCK_log.xml" (o que significa que o arquivo será criado no diretório atual). Observe que o arquivo de log será substituído.

      2. <LogToConsole> [BOOLEAN] é "True" quando os logs serão exibidos no console, juntamente com a gravação no arquivo de log. O valor padrão é "True".

      3. <CertifyLogLevel> especifica o nível de log (0, 1 ou 2). 0 significa registro em log mínimo, 1 entrada e saída da função de logs e 2 significa registro em log completo. O registro em log completo sempre é usado quando você executa testes individualmente e é principalmente para ajudar no desenvolvimento. Ao fazer um envio de logotipo, recomendamos definir o nível de log como 0.

Estrutura do arquivo de configuração

O exemplo de código a seguir mostra um arquivo de configuração de exemplo.


<CMCKConfig>
  <V6>
    <Version>2</Version>
    <CardDefaults>
      <DefaultPins>
        <PinEntry>
          <RoleID>1</RoleID>
          <Type>AlphaNumericPinType</Type>
          <Value>0x30 0x30 0x30 0x30</Value>
          <Blocking>True</Blocking>
          <AllowZeroLength>False</AllowZeroLength>
        </PinEntry>
        <PinEntry> 
          <RoleID>2</RoleID>
          <Type>ChallengeResponsePinType</Type>
          <Value>0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00</Value>
          <Blocking>True</Blocking>
          <AllowZeroLength>False</AllowZeroLength>
        </PinEntry>
        <PinEntry>
          <RoleID>3</RoleID>
          <Type>AlphaNumericPinType</Type>
          <Value>0x30 0x30 0x30 0x30</Value>
          <Blocking>True</Blocking>
          <AllowZeroLength>False</AllowZeroLength>
        </PinEntry>
        <PinEntry>
         <RoleID>4</RoleID>
         <Type>AlphaNumericPinType</Type>
         <Value>0x30 0x30 0x30 0x30</Value>
         <Blocking>True</Blocking>
         <AllowZeroLength>False</AllowZeroLength>
       </PinEntry>
       <PinEntry>
          <RoleID>5</RoleID>
          <Type>AlphaNumericPinType</Type>
          <Value>0x30 0x30 0x30 0x30</Value>
          <Blocking>True</Blocking>
          <AllowZeroLength>False</AllowZeroLength>
       </PinEntry>
       <PinEntry>
         <RoleID>6</RoleID>
         <Type>AlphaNumericPinType</Type>
         <Value>0x30 0x30 0x30 0x30</Value>
         <Blocking>True</Blocking>
         <AllowZeroLength>False</AllowZeroLength>
        </PinEntry>
        <PinEntry>
          <RoleID>7</RoleID>
          <Type>AlphaNumericPinType</Type>
          <Value>0x30 0x30 0x30 0x30</Value>
          <Blocking>True</Blocking>
          <AllowZeroLength>False</AllowZeroLength>
        </PinEntry>
      </DefaultPins>
      <CardSupports>
        <MinimumVersion>4</MinimumVersion>
        <CurrentVersion>6</CurrentVersion>
        <LoadingUnderCAPI>True</LoadingUnderCAPI>
        <LoadingUnderCNG>True</LoadingUnderCNG>
        <KeyImport>True</KeyImport>
        <KeyTypes>AT_SIGNATURE AT_KEYEXCHANGE</KeyTypes>
        <OnCardPadding>False</OnCardPadding>
        <PaddingAlgorithms>CARD_PADDING_PKCS1</PaddingAlgorithms>
        <SignHashAlgorithms>CALG_MD5 CALG_SHA CALG_SHA1 CALG_SHA_256 CALG_SHA_384 CALG_SHA_512</SignHashAlgorithms>
        <SignHashFlags />
        <SignReturnBufferSize>True</SignReturnBufferSize>
        <KDFTypes>HASH</KDFTypes>
        <KDFHashAlgorithms>SHA1 SHA256 SHA384 SHA512</KDFHashAlgorithms>
        <KDFHMACflag>False</KDFHMACflag>
        <SupportsCardGetChallenge>True</SupportsCardGetChallenge>
        <SupportsCardAuthenticateChallenge>True</SupportsCardAuthenticateChallenge>
        <SupportsCardGetChallengeEx>True</SupportsCardGetChallengeEx>
        <SupportsCardUnblockPin>True</SupportsCardUnblockPin>
        <SupportsCardChangeAuthenticator>True</SupportsCardChangeAuthenticator>
        <SupportsCardChangeAuthenticatorEx>True</SupportsCardChangeAuthenticatorEx>
      </CardSupports>
    </CardDefaults>
    <TestSuiteDefaults>
      <INF>
        <INFFile>C:\SmartcardMinidriverTest\minidriver.inf</INFFile>
      </INF>
      <Logging>
        <LogFile>CMCK_log.xml</LogFile>
        <LogToConsole>True</LogToConsole>
      </Logging>
      <TestParams>
        <TestParam>
          <Test>MultiThreaded</Test>
          <Name>t</Name>
          <Value>5</Value>
        </TestParam>
        <TestParam>
          <Test>MultiThreaded</Test>
          <Name>n</Name>
          <Value>5</Value>
        </TestParam>
        <TestParam>
          <Test>NonRepeatingChallenge</Test>
          <Name>n</Name>
          <Value>300</Value>
        </TestParam>
      </TestParams>
    </TestSuiteDefaults>
  </V6>
  <V5>
    <Version>1</Version>
      <CardDefaults>
        <DefaultPins>
          <PinEntry>
            <Type>User</Type>
            <Value>0x30 0x30 0x30 0x30</Value>
            <Blocking>True</Blocking>
            <AllowZeroLength>False</AllowZeroLength>
          </PinEntry>
        </DefaultPins>
        <DefaultKeys>
          <KeyEntry>
            <Type>Admin</Type>
            <Algorithm>3DES</Algorithm>
            <Mode>ECB</Mode>
            <Blocking>True</Blocking>
            <Value>0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00</Value>        </KeyEntry>
        </DefaultKeys>
        <CardSupports>
          <MinimumVersion>4</MinimumVersion>
          <CurrentVersion>6</CurrentVersion>
          <LoadingUnderCAPI>True</LoadingUnderCAPI>
          <LoadingUnderCNG>True</LoadingUnderCNG>
          <KeyImport>True</KeyImport>
          <KeyTypes>AT_SIGNATURE AT_KEYEXCHANGE</KeyTypes>
          <OnCardPadding>False</OnCardPadding>
          <PaddingAlgorithms>CARD_PADDING_NONE</PaddingAlgorithms>
          <SignHashAlgorithms>CALG_MD5 CALG_SHA CALG_SHA1</SignHashAlgorithms>
          <SignHashFlags>CRYPT_NOHASHOID</SignHashFlags>
          <SignReturnBufferSize>False</SignReturnBufferSize>
          <KDFTypes>HASH</KDFTypes>
          <KDFHashAlgorithms>SHA1 SHA256 SHA384 SHA512</KDFHashAlgorithms>
          <KDFHMACflag>False</KDFHMACflag>
      </CardSupports>
    </CardDefaults>
    <TestSuiteDefaults>
      <INF>
        <INFFile>C:\SmartcardMinidriverTest\minidriver.inf</INFFile>
      </INF>
      <Logging>
        <LogFile>CMCK_log.xml</LogFile>
        <LogToConsole>True</LogToConsole>
      </Logging>
      <TestParams>
        <TestParam>
          <Test>MultiThreaded</Test>
          <Name>t</Name>
          <Value>5</Value>
        </TestParam>
        <TestParam>
          <Test>MultiThreaded</Test>
            <Name>n</Name>
            <Value>5</Value>
        </TestParam>
        <TestParam>
          <Test>NonRepeatingChallenge</Test>
            <Name>n</Name>
            <Value>300</Value>
        </TestParam>
      </TestParams>
    </TestSuiteDefaults>
  </V5>
</CMCKConfig>

Sintaxe de comando

Opção de comando Descrição

comando> cmck <[opções]

Executa o teste.

Observação

   Para obter ajuda de linha de comando para esse binário de teste, digite cmck help [command]

 

Lista de arquivos

Arquivo Location

cmck.exe

<[testbinroot]>\nttest\dstest\security\core\bin\credentials\smartcard

cmck_simuse.exe

<[testbinroot]>\nttest\dstest\security\core\bin\credentials\smartcard

intrcptr.dll

<[testbinroot]>\nttest\dstest\security\core\bin\credentials\smartcard

 

Parâmetros

Nome do parâmetro Descrição do parâmetro
WDKDeviceID
LLU_NetAccessOnly