证书响应函数

CertEnroll.dll 实现 IX509Enrollment 接口,以提交客户端证书请求并安装来自 证书颁发机构(CA)的响应。

注册过程可以适应以下三种方案:

带外注册
  1. 调用由 IX509Enrollment 对象实现的任何初始化方法。
  2. 调用 CreateRequest 方法来检索请求。
  3. 将请求提交带外(手动或使用一些其他过程)。
  4. 从 CA 接收响应。
  5. 调用 InstallResponse 方法。

自动注册

  1. 调用由 IX509Enrollment 对象实现的任何初始化方法。
  2. 调用 注册 方法。

延迟注册

  1. 调用由 IX509Enrollment 对象实现的任何初始化方法。
  2. 调用 CreateRequest 方法来检索请求。
  3. 存储请求,直到准备好提交请求。
  4. 准备好注册时,请调用 Initialize 方法重新初始化注册对象。
  5. 当 CA 返回证书时,调用 InstallResponse 方法。

在注册过程中,可以调用 IX509Enrollment 对象的 Status 属性来检索 EnrollmentEnrollStatus 枚举值,该值标识注册成功、挂起、跳过、生成错误或被拒绝。

以下每个部分都标识由 Xenroll.dll 导出的函数,以便从 CA 安装证书响应。 每个部分还讨论如何使用 CertEnroll.dll 替换函数或指示两个库之间不存在映射:

acceptFilePKCS7WStr

Xenroll.dll 中的 acceptFilePKCS7WStr 函数从文件安装 PKCS #7 响应。

CertEnroll.dll 库不直接实现从文件安装 PKCS #7 证书响应的功能。 但是,可以创建自定义函数以将文件数据读入字节数组,并调用 InstallResponse 来安装响应。

如果为 installResponse的第一个参数指定 InstallResponseRestrictionFlags 枚举的 AllowNoOutstandingRequest 值,则虚拟证书不存在,因此无需首先调用 EnrollCreateRequest即可安装证书。 但是,如果要使用 Web 脚本安装证书,则请求存储中必须存在虚拟证书。 因此,必须为第一个参数指定 AllowNone

acceptFileResponseWStr

Xenroll.dll 中的 acceptFileResponseWStr 函数从文件安装 PKCS #7 或 CMC 证书响应。

CertEnroll.dll 库不直接实现从文件安装证书响应的功能。 但是,可以创建自定义函数以将文件数据读入字节数组,并调用 InstallResponse 来安装 PKCS #7 或 CMC 响应。

如果为 installResponse的第一个参数指定 InstallResponseRestrictionFlags 枚举的 AllowNoOutstandingRequest 值,则虚拟证书不存在,因此无需首先调用 EnrollCreateRequest即可安装证书。 但是,如果要使用 Web 脚本安装证书,则请求存储中必须存在虚拟证书。 因此,必须为第一个参数指定 AllowNone

acceptPKCS7Blob

Xenroll.dll 中的 acceptPKCS7Blob 函数安装字节数组中包含的 PKCS #7 响应。

可以调用 InstallResponse 来安装 PKCS #7 消息。 如果为 InstallResponse的第一个参数指定 InstallResponseRestrictionFlags 枚举的 AllowNoOutstandingRequest 值,则不需要虚拟证书, 因此,无需先调用 注册CreateRequest,即可安装 PKCS #7 响应。 但是,如果要使用 Web 脚本安装证书,则请求存储中必须存在虚拟证书。 因此,必须为第一个参数指定 AllowNone

acceptResponseBlob

Xenroll.dll 中的 acceptResponseBlob 函数安装字节数组中包含的 PKCS #7 或 CMC 证书响应。

可以调用 InstallResponse 来安装 PKCS #7 或 CMC 响应。 如果为 installResponse的第一个参数指定 InstallResponseRestrictionFlags 枚举的 AllowNoOutstandingRequest 值,则虚拟证书不存在,因此无需首先调用 EnrollCreateRequest即可安装响应。 但是,如果要使用 Web 脚本安装证书,则请求存储中必须存在虚拟证书。 因此,必须为第一个参数指定 AllowNone

getCertContextFromFileResponseWStr

getCertContextFromFileResponseWStr 函数 Xenroll.dll 从文件中检索客户端证书。

CertEnroll.dll 库不直接实现从保存在文件中的 CA 响应中检索证书的功能。 但是,可以创建自定义函数以将文件数据读入字节数组,并调用 InstallResponse 来安装 PKCS #7 或 CMC 响应,并调用 Certificate 属性来检索证书。

如果为 installResponse的第一个参数指定 InstallResponseRestrictionFlags 枚举的 AllowNoOutstandingRequest 值,则虚拟证书不存在,因此无需首先调用 EnrollCreateRequest即可安装证书。 但是,如果要使用 Web 脚本安装证书,则请求存储中必须存在虚拟证书。 因此,必须为第一个参数指定 AllowNone

getCertContextFromPKCS7

getCertContextFromPKCS7 函数 Xenroll.dll 从 PKCS #7 响应中检索客户端证书。

可以在 IX509Enrollment 对象上调用 Certificate 属性,以在调用 EnrollInstallResponse 方法后检索证书。

getCertContextFromResponseBlob

getCertContextFromResponseBlob 函数 Xenroll.dll 从 PKCS #7 或 CMC 响应中检索客户端证书。

可以在 IX509Enrollment 对象上调用 Certificate 属性,以在调用 EnrollInstallResponse 方法后检索证书。

InstallPKCS7Blob

Xenroll.dll 中的 InstallPKCS7Blob 函数安装 PKCS #7 响应。

可以调用 InstallResponse 来安装 PKCS #7 或 CMC 响应。 如果为 installResponse的第一个参数指定 InstallResponseRestrictionFlags 枚举的 AllowNoOutstandingRequest 值,则虚拟证书不存在,因此无需首先调用 EnrollCreateRequest即可安装响应。 但是,如果要使用 Web 脚本安装证书,则请求存储中必须存在虚拟证书。 因此,必须为第一个参数指定 AllowNone

InstallPKCS7BlobEx

Xenroll.dll 中的 InstallPKCS7BlobEx 函数安装 PKCS #7 响应并返回安装的证书数。

可以调用 InstallResponse 来安装 PKCS #7 或 CMC 响应。 如果为 installResponse的第一个参数指定 InstallResponseRestrictionFlags 枚举的 AllowNoOutstandingRequest 值,则虚拟证书不存在,因此无需首先调用 EnrollCreateRequest即可安装响应。 但是,如果要使用 Web 脚本安装证书,则请求存储中必须存在虚拟证书。 因此,必须为第一个参数指定 AllowNone

SPCFileNameWStr

Xenroll.dll 中的 SPCFileNameWStr 函数指定或检索保存证书响应的文件的名称。 CertEnroll.dll 库不实现使你能够将证书复制到特定文件的功能。 注册过程会自动将证书链安装到相应存储中的文件中。

WriteCertToCSP

Xenroll.dll 中的 WriteCertToCSP 函数指定或检索一个布尔值,该值指示证书是否应写入 加密服务提供商(CSP)。 通常,如果调用此函数,提供程序是 智能卡

在 CertEnroll.dll中,当客户端调用 Enroll 方法以提交智能卡证书的请求并颁发证书时,注册 会自动在智能卡上安装证书,前提是该卡安装在读取器中。 InstallResponse 方法还会自动将证书写入智能卡。

WriteCertToUserDS

Xenroll.dll 中的 WriteCertToUserDS 函数指定或检索一个布尔值,该值指示证书是否应保存在 Active Directory 存储中。 CertEnroll.dll 库未实现使你能够指定要将证书复制到的存储区的功能。

映射 Xenroll.dll 到 CertEnroll.dll

IX509Enrollment