私钥缓存常量

以下常量用于表示由基于 Microsoft 软件的 CSP 控制 私钥 缓存的注册表项。

常量/值 说明
szKEY_CRYPTOAPI_PRIVATE_KEY_OPTIONS
“Software\\Policies\\Microsoft\\Cryptography”
私钥缓存注册表项的 HKEY_LOCAL_MACHINE 根目录下的路径。

以下常量用于标识注册表值,这些值控制基于 Microsoft 软件的 CSP 为特定进程全局缓存私钥。

常量/值 说明
szPRIV_KEY_CACHE_MAX_ITEMS
“PrivKeyCacheMaxItems”
szKEY_CRYPTOAPI_PRIVATE_KEY_OPTIONS注册表项下的REG_DWORD值,该值指定单个进程一次可缓存的最大私钥数。 每当读取存储的私钥时,将执行此检查。 如果超出最大数目,则会从缓存中删除最近使用的最少键。
如果此值为零,则不缓存任何密钥。 如果此值不存在,则 使用cPRIV_KEY_CACHE_MAX_ITEMS_DEFAULT 值作为默认值。
如果当前在开放上下文中引用了从缓存中删除的私钥,则在下次尝试使用该密钥时,将从存储中读取该密钥。
Windows Server 2003 和 Windows XP SP1 及更早版本: 不支持此注册表值。
cPRIV_KEY_CACHE_MAX_ITEMS_DEFAULT
20
如果未指定任何值 ,则为szPRIV_KEY_CACHE_MAX_ITEMS 注册表项的默认值。
szPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS
“PrivKeyCachePurgeIntervalSeconds”
szKEY_CRYPTOAPI_PRIVATE_KEY_OPTIONS注册表项下的REG_DWORD值,该值指定任何缓存的私钥的最大期限(以秒为单位)。 每当使用或读取存储的私钥时,将执行此检查。 如果自上次清除以来已过此时间量,则将从缓存中删除自上次清除以来未引用的所有缓存密钥。
如果此值不存在,则 使用cPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS_DEFAULT 值作为默认值。
如果当前在开放上下文中引用了从缓存中清除的私钥,则在下次尝试使用该密钥时,将从存储中读取该密钥。
Windows Server 2003 和 Windows XP SP1 及更早版本: 不支持此注册表值。
cPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS_DEFAULT
86400
如果未指定任何值, 则为szPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS 注册表项的默认值。 此值相当于一天。

以下常量用于标识注册表值,这些值控制单个基于 Microsoft 软件的 加密服务提供商 的私钥缓存 (CSP) 实例。

常量/值 说明
“AllowCachePW”
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Cryptography\Protect注册表项下的REG_DWORD值,该值指定是否在基于 Microsoft 软件的 CSP 中为受密码保护的密钥启用密码缓存。 如果此值为 0,则取消标记密码缓存,并且每次使用受密码保护的密钥时都会提示用户输入密码。 任何其他值或缺少此值表示将缓存密码。 在这种情况下,对于每个此类密钥,每个进程仅提示用户一次。
szKEY_CACHE_ENABLED
“CachePrivateKeys”
szKEY_CRYPTOAPI_PRIVATE_KEY_OPTIONS注册表项下的REG_DWORD值,该值指定是否启用私钥缓存。 如果此值为 1,则启用私钥缓存。 任何其他值(或缺少此值)表示私钥缓存已禁用。
Windows Vista SP1、Windows Vista 和 Windows XP: 不支持此注册表值。
szKEY_CACHE_SECONDS
“PrivateKeyLifetimeSeconds”
szKEY_CRYPTOAPI_PRIVATE_KEY_OPTIONS注册表项下的REG_DWORD值,该值指定任何缓存的私钥的最大期限(以秒为单位)。
Windowsxp: 不支持此注册表值。

备注

szKEY_CACHE_SECONDSszPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS值之间的差异如下所示:

szKEY_CACHE_SECONDS

  • 此值仅适用于特定 CSP。 释放 CSP 后,也会释放 CSP 的缓存。
  • 仅当尝试使用具有特定上下文句柄的特定私钥时,才应用此值。

szPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS

  • 此值适用于进程中的所有 CSP。 即使释放 CSP,也不会释放此缓存。
  • 只要在单个进程中使用或从存储中读取任何存储的私钥,此值就适用。

要求

要求
最低受支持的客户端
Windows XP [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
标头
Wincrypt.h