createCNGCustomCMC

createCNGCustomCMC 示例从内部嵌套 PKCS #10 请求创建 CMC 请求对象。 内部请求是使用非对称 私钥创建的。 私钥是使用加密 API:下一代 (CNG) 加密提供程序和命令行中指定的算法创建的。 自定义选项(如导出策略和密钥保护级别)也在私钥上设置。

位置

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

讨论 (Discussion)

createCNGCustomCMC 示例:

  1. 处理以下命令行参数:
    • CSP) (CNG 加密服务提供程序 的名称。
    • 用于生成非对称私钥的算法的名称。
    • 用于对证书请求进行哈希运算的算法的名称。
    • 要在其中保存证书请求的输出文件。
    • (AlternateSignature) 可选字符串,如果存在,则指定使用离散签名算法而不是组合签名算法。 有关详细信息,请参阅 AlternateSignatureAlgorithm 属性。
  2. 创建 IX509PrivateKey 对象并设置以下属性:
  3. 创建非对称私钥。
  4. 创建 IX509CertificateRequestPkcs10 对象,并使用私钥对其进行初始化。
  5. 创建 IX509CertificateRequestCmc 对象,并使用在步骤 4 中创建的 PKCS #10 请求对象对其进行初始化。
  6. 根据是否在命令行上指定备用签名字符串,将备用签名算法标志设置为 VARIANT_TRUEVARIANT_FALSE 。 有关详细信息,请参阅 AlternateSignatureAlgorithm
  7. 从命令行上指定的算法名称创建 哈希算法对象标识符 (OID) ,并在 CMC 请求对象上设置 OID。
  8. 使用 可辨别编码规则 (DER) 对证书请求进行签名和编码。
  9. 检索包含编码的 CMC 证书请求的字符串,并将其保存到文件中。 EncodeToFileW 函数在 EnrollCommon.cpp 中定义。

CMC 请求

PKCS #10 请求

使用包含的示例

IX509PrivateKey