enrollRenewalPKCS7

enrollRenewalPKCS7 示例创建 PKCS #7 请求对象来续订现有证书。 请求对象使用新的密钥对,但保留与正在续订的证书关联的加密提供程序。

位置

) 安装 Microsoft Windows 软件开发工具包 (SDK 时,该示例默认安装在 %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\Security\X509 Certificate Enrollment\VC\enrollRenewalPKCS7 文件夹中。

讨论 (Discussion)

enrollRenewalPKCS7 示例:

  1. 处理命令行参数。 命令行应包含用于创建证书请求的模板的名称。
  2. 使用命令行上指定的模板的名称检索现有证书,如果找不到证书,则尝试使用该模板注册一个证书。 findCertByTemplate 和 enrollCertByTemplate 函数在 enrollCommon.cpp 中定义。
  3. 验证证书链并将证书转换为 BSTR
  4. 创建 IX509CertificateRequestPkcs7 对象,并使用现有证书对其进行初始化。 由于 inheritOptions 参数设置为 InheritDefault,因此会为请求创建新的密钥对,但使用现有证书中的加密提供程序。 有关详细信息,请参阅 InitializeFromCertificate 方法。
  5. 创建 IX509Enrollment 对象,使用 PKCS #7 请求对象对其进行初始化,尝试向 CA 注册该对象,并监视注册过程的状态。 checkEnrollStatus 函数在 enrollCommon.cpp 中定义。

CMC 请求

PKCS #7 续订请求

使用包含的示例