智能卡微型驱动程序认证测试

此自动测试验证智能卡微型驱动程序和关联的智能卡的运行情况。

智能卡微型驱动程序是由 Microsoft 基本加密服务提供程序(基本 CSP)和 Microsoft 智能卡密钥存储提供程序 (SCKSP) 加载的软件 DLL,用于访问关联智能卡的功能。 对于智能卡供应商,这些微型驱动程序提供了一种在 Microsoft Windows 操作系统上实现智能卡功能的简单方法,而不必通过开发传统的加密服务提供程序 (CSP)。 (智能卡微型驱动程序过去也称为智能卡模块。)

此测试对智能卡微型驱动程序执行功能、压力、性能和可靠性测试。 此测试调用 Microsoft BaseCSP 和 Microsoft 智能卡密钥存储提供程序,并直接访问卡微型驱动程序方法,以测试卡微型驱动程序和关联卡的操作正确性。 此测试还使用智能卡资源管理器直接访问卡。

测试详细信息

   
规范
  • Device.Input.SmartCardMiniDriver.SupportMultipleInstancesOnASystem
  • Device.Input.SmartCardMiniDriver.DoNotStopWhenResourcesAreUnavailable
  • Device.Input.SmartCardMiniDriver.SpecsAndCertifications
平台
  • Windows 10,客户端版本 (x86)
  • Windows 10,客户端版本 (x64)
  • Windows Server 2016 (x64)
  • Windows 10,客户端版本 (Arm64)
支持的版本
  • Windows 10
  • Windows 10 版本 1511
  • Windows 10 版本 1607
  • Windows 10 版本 1703
  • Windows 10 版本 1709
  • Windows 10 版本 1803
  • Windows 10 版本 1809
  • Windows 10 版本 1903
  • Windows 10 的下一次更新
预计运行时间(以分钟为单位) 180
类别 兼容性
超时(以分钟为单位) 10800
需要重启 false
需要特殊配置 false
类型 automatic

 

其他文档

此功能区域中的测试可能会有其他文档,包括先决条件、设置和故障排除信息,这些内容可在以下主题中找到:

运行测试

在运行测试之前,请按照如下测试要求中所述完成测试设置:智能卡读卡器测试先决条件

此外,此测试需要以下硬件。

  • WHQL 认证的智能卡读卡器

故障排除

有关 HLK 测试失败的常规故障排除,请参阅排查 Windows HLK 测试失败问题

有关故障排除信息,请参阅排查 Device.Input 测试问题

此外,有关特定于智能卡的疑难解答信息,请参阅以下网站:

更多信息

此测试在 Windows HLK Studio 中显示为单个作业,尽管也可以从 Windows HLK Studio 环境外部运行该工具。 将二进制文件从下面指定的位置复制到你选择的目录中,然后可以从你选择的目录中运行测试工具。 可能还必须将 Wttlog.dll 共享库复制到运行目录。 此 DLL 随 Windows HLK 客户端应用程序一起安装。

与在 DTM 中运行测试工具相比,在 Windows HLK 外部运行测试工具具有更大的灵活性,因为你可以单独选择测试。 有关详细信息,请参阅本文档后面的命令行说明。

如果从 Windows HLK 运行测试,则只需要一台客户端计算机。 Windows HLK 文档说明如何在测试计算机上设置 Windows HLK 控制器、Windows HLK Studio 和 Windows HLK 客户端应用程序。

以下信息适用于运行测试的计算机,无论你是在 Windows HLK 环境中还是在 Windows HLK 环境外部运行测试。

若要运行测试,必须在计算机上安装智能卡微型驱动程序并在注册表中注册。 (此外,有关在 64 位版本的操作系统上进行认证的详细信息,请参阅下一节“在 64 位版本的操作系统上进行认证”)。 如果你的智能卡设备具有 ISO 7816 ID-1 外形规格,则必须使用符合 PC/SC 标准且经过 WHQL 认证的智能卡读卡器进行认证。

若要运行测试,计算机上必须有两个相同的智能卡,并且两者都必须处于“已准备”状态,其中“已准备”状态是由 Windows 基本加密服务提供程序(基本 CSP)和智能卡密钥存储提供程序 (KSP) 的智能卡微型驱动程序规范定义。

运行的测试取决于智能卡微型驱动程序的功能。 可以在名为 cmck_config.xml 的特定配置文件中为测试工具定义智能卡微型驱动程序的功能,你必须将其放在 C:\SmartCardMinidriverTest 目录中。 此文件的说明和示例如下。

在典型的测试运行中,如果未找到配置文件,则测试将要求你确认是否使用默认值继续。 但是,对于徽标提交,必须提供与微型驱动程序和卡组合的功能相匹配的配置文件。

默认键值如下所示:

  • 默认用户 PIN 为 0000。

  • 质询/响应的默认管理密钥全部为零。

在 64 位版本的操作系统上进行认证

在 64 位版本的操作系统上进行认证时,还必须在系统上安装 32 位版本的微型驱动程序 DLL。 你可以将 DLL 放在 %systemroot%\syswow64 子目录中。 你必须将 32 位版本的 DLL 的注册表项放在 HKEY_LOCAL_MACHINE\SOFTWARE\wow6432Node\Microsoft\Cryptography\Calais\SmartCards 下。

执行使用微型驱动程序的 32 位应用程序时,应用程序将加载微型驱动程序的 32 位版本。

智能卡微型驱动程序的 INF 文件

提交证书时,必须提供 .inf 文件。 下面是 x86体系结构的示例 .inf 文件:

[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"

智能卡微型驱动程序配置文件说明 (cmck_config.xml)

CMCK_config.xml 包含以下 V5、V6 和 V7 部分,具体取决于你的微型驱动程序支持的 V5/V6/V7 版本。 请注意:V5/V6/V7 关键字是大写的。

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

每个部分都用下面描述的 XML 标记填充。 另请注意,每个部分可能有不同的设置,具体取决于微型驱动程序支持的版本。

你可以在配置文件的每个部分中设置以下值(结构如图所示):

  • <Version> 是必填字段,定义配置文件版本号。 目前,V6 和 V7 部分的预期版本是 CMCK XML 配置文件的“2”,而 V5 部分的预期版本是“1”。

  • <CardDefaults> 包含用于认证运行和常规测试运行的参数。

    • <DefaultPins> - PIN 值,必须用于身份验证相关功能

      <PinEntry><RoleID> - 允许的值:1 - 7

      <PinEntry><Type> - 允许值:“AlphanumericPinType”、“ChallengeResponsePinType”、“EmptyPinType”、“ExternalPinType”

      <PinEntry><Value> - PIN 的空格分隔的十六进制字节列表。 默认值:“0x30 0x30 0x30 0x30”(即“0000”)

      <PinEntry><Blocking> [BOOLEAN] - 指定在错误的 PIN 出现太多次时是否支持针对此类用户阻止智能卡。 默认“True”。

      <PinEntry><Linking> [BOOLEAN] - 指定此 PIN 是否链接到另一个 PIN,即更改一个 PIN 将更改另一个 PIN。 默认值“False”。

      <PinEntry><AllowZeroLength> [BOOLEAN] - 指定卡是否允许 PIN 为空。 默认值“False”。

  • <CardSupports> - 定义卡或卡微型驱动程序支持的可选功能,例如算法、密钥类型等。 测试将涵盖支持的功能。

    1. <MinimumVersion> [DWORD] 包含卡微型驱动程序支持的上下文 CARD_DATA 结构的最低版本。 有关详细信息,请参阅“智能卡微型驱动程序规范”。 允许的值为“4”、“5”、“6”、“7”。

    2. <CurrentVersion> [DWORD] 包含卡微型驱动程序设计的上下文 CARD_DATA 结构的版本。 有关详细信息,请参阅“智能卡微型驱动程序规范”。 允许的值为“5”、“6”、“7”。

    3. 如果卡微型驱动程序支持在 CAPI 下加载,<LoadingUnderCAPI> [BOOLEAN] 为“True”,否则为“False”。

    4. 如果卡微型驱动程序支持在 CNG 下加载,<LoadingUnderCNG> [BOOLEAN] 为“True”,否则为“False”。 请注意,这两个属性中的至少一个必须为“True”(CAPI 或 CNG)。

    5. 如果卡微型驱动程序支持密钥导入,则 <KeyImport> [BOOLEAN] 为“True”,否则为“False”。

    6. <KeyTypes> 包含卡微型驱动程序支持的以空格分隔的密钥类型列表。 对于 ECC 密钥,允许的值为“AT_ECDH_P256”、“AT_ECDH_P384”、“AT_ECDH_P521”、“AT_ECDSA_P256”、“AT_ECDSA_P384”或“AT_ECDSA_P521”,对于 RSA 密钥,允许值为“AT_SIGNATURE”或“AT_KEYEXCHANGE”。 如果支持卡上填充,则 <OnCardPadding> [BOOLEAN] 为“True”,否则为“False”。

    7. <PaddingAlgorithms> 包含一个以空格分隔的受支持的卡上填充算法列表(仅当 <OnCardPadding> 为“True”时有效)。 允许的值为“CARD_PADDING_NONE”、“CARD_PADDING_PKCS1”和“CARD_PADDING_PSS”。

    8. <SignHashAlgorithms> 包含卡微型驱动程序支持用于签名的以空格分隔的哈希算法列表(CARD_SIGNING_INFO 结构中的 aiHashAlg)。 允许的值为“CALG_MD2”、“CALG_MD4”、“CALG_MD5”、“CALG_SHA”、“CALG_SHA1”、“CALG_SHA_256”、“CALG_SHA_384”和“CALG_SHA_512”。 有关详细信息,请参阅“智能卡微型驱动程序规范”。

    9. <SignHashFlags> 包含卡微型驱动程序支持的 CryptSignHash 标志的空格分隔列表。 允许的值为“CRYPT_NOHASHOID”和“CRYPT_X931_FORMAT”。

    10. 当卡微型驱动程序支持 CARD_SIGNING_INFO 结构中 dwSigningFlags 的 CARD_BUFFER_SIZE_ONLY 值时,<SignReturnBufferSize> [BOOLEAN] 为“True”。 有关详细信息,请参阅“智能卡微型驱动程序规范”。

    11. <KDFTypes> 包含卡微型驱动程序支持的密钥派生函数的空格分隔列表。 允许的值为“HASH”、“HMAC”、“TLS_PRF”和“SP800_56A_CONCAT”。 有关详细信息,请参阅“智能卡微型驱动程序规范”。

    12. <KDFHashAlgorithms> 包含卡微型驱动程序支持的密钥派生函数 (KDF) 的以空格分隔的哈希算法列表。 智能卡微型驱动程序规范包含更多详细信息。 允许的值在 bcrypt.h 头文件中定义,并且是 BCRYPT_XXXX_ALGORITHM 定义的值(例如,“SHA256”(BCRYPT_SHA256_ALGORITHM) 或“MD5”(BCRYPT_MD5_ALGORITHM))。

    13. 如果卡微型驱动程序仅支持 2 键 3DES,则 <Uses2Key3DES> 为“True”。 当此值为“False”时,表示卡微型驱动程序使用默认的 3 键 3DES。 默认值是“False”。

    14. 如果卡微型驱动程序支持具有 KDF_USE_SECRET_AS_HMAC_KEY_FLAG 标志的 BCRYPT_KDF_HMAC 密钥派生函数,则 <KDFHMACFlag> [BOOLEAN] 为“True”(有关详细信息,请参阅 MSDN CNG 上的“下一代加密 (CNG)”文档)。 当此值为“False”时,测试将提供显式 HMAC 密钥,并且不会为受影响的测试设置 KDF_USE_SECRET_AS_HMAC_KEY_FLAG 标志。

    15. 如果返回的卡质询数据包含填充位,则 <ChallengePadding> [BOOLEAN] 为“True”。 默认值是“False”。

    16. <SupportsCardGetChallenge> [BOOLEAN] - 如果 CM 支持 CardGetChallenge API(用于只读卡),则为“True”。

    17. <SupportsCardAuthenticateChallenge> [BOOLEAN] - 如果 CM 支持 CardAuthenticateChallenge API(用于只读卡),则为“True”。

    18. <SupportsCardGetChallengeEx> [BOOLEAN] - 如果 CM 支持 CardGetChallengeEx API(用于只读卡),则为“True”。

    19. <SupportsCardUnblockPin> [BOOLEAN] - 如果 CM 支持 CardUnblockPin API(用于只读卡),则为“True”。

    20. <SupportsCardChangeAuthenticator> [BOOLEAN] - 如果 CM 支持 CardChangeAuthenticator API(这用于只读卡),则为“True”。

    21. <SupportsCardChangeAuthenticatorEx> [BOOLEAN] - 如果 CM 支持 CardChangeAuthenticatorEx API(这用于只读卡),则为“True”。

  • <TestSuiteDefaults> 包含仅影响测试运行的参数。 (认证运行使用自己的默认值。)

    1. <INF> 包含有关智能卡 PnP 中使用的 INF 文件的信息。

      • <INFFile> 包含智能卡 PnP INF 文件的位置和文件名,该文件与要测试的智能卡/微型驱动程序匹配。 除内置 PIV/GICS 类微型驱动程序以外,此项对于所有微型驱动程序都是强制性的。
    2. <Logging> 包含适用于测试运行的日志记录选项

      1. <LogFile> 包含 XML 日志文件的位置和文件名。 默认为“CMCK_log.xml”(这意味着该文件将在当前目录中创建)。 请注意,日志文件将被覆盖。

      2. 当日志将显示在控制台上并写入日志文件时,<LogToConsole> [BOOLEAN] 为“True”。 默认值是“true”。

      3. CertifyLogLevel 指定日志级别(0、1 或 2)。<> 0 表示最低日志记录级别,1 记录函数进入和退出,2 表示完整日志记录。 当你单独运行测试时始终使用完整日志记录,主要是为了帮助开发。 在提交徽标时,我们建议将日志级别设置为 0。

配置文件结构

以下代码示例显示了一个示例配置文件。


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

命令语法

命令选项 说明

cmck <command> [选项]

运行测试。

注意

   有关此测试二进制文件的命令行帮助,请键入 cmck help [command]

 

文件列表

文件 位置

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

 

参数

参数名称 参数说明
WDKDeviceID
LLU_NetAccessOnly