加密服务提供程序上下文
使用任何加密 API 的应用程序调用的第一个 CryptoAPI 函数是 CryptAcquireContext 函数。 此函数返回特定 CSP 的句柄,其中包括 CSP 中特定 密钥容器 的规范。 此密钥容器是特定请求的密钥容器,或者是当前登录用户的默认密钥容器。
CryptAcquireContext 还可以创建新的密钥容器。 有关详细信息,请参阅 示例 C 程序: 创建密钥容器和生成密钥 示例 C 程序:使用 CryptAcquireContext。
加密服务提供程序(CSP)具有名称和类型。 例如,作系统当前随附的 CSP 的名称 Microsoft基本加密提供程序。 它是 PROV_RSA_FULL 类型提供程序。 每个提供程序的名称是唯一的;提供程序类型不是。
当应用程序调用 CryptAcquireContext 以获取 CSP 句柄时,它会指定提供程序类型和提供程序名称(可选)。 如果同时指定了类型和名称,该函数将加载具有匹配提供程序类型和提供程序名称的 CSP。 该函数返回 CSP 的句柄,该句柄提供对 CSP 和 CSP 中密钥容器的访问权限。
当应用程序调用 CryptAcquireContext 并指定提供程序类型但不指定提供程序名称时,该函数将查找命名提供程序,首先检查与登录用户关联的默认命名提供程序列表,如果失败,则从与计算机关联的默认命名提供程序列表中检查该列表。 确定提供程序名称后,CryptAcquireContext 函数搜索该提供程序的 CSP,加载并返回其句柄。
使用完 CSP 句柄后,通过调用 CryptReleaseContext 函数释放它。