使用 XPS 数字签名 API

本主题列出了使用 XPS 数字签名 API 向 XPS 文档添加数字签名的注意事项。

XPS 数字签名 API 使应用程序能够请求用户对 XPS 文档进行签名,并验证在 XPS 文档中找到的签名。 XPS 数字签名 API 可以应用于 XPS 文档,而无需将其加载到 XPS OM 中,并且可以在从 XPS OM 序列化的 XPS 文档流上使用。

XPS 数字签名 API 编程任务部分包含介绍如何使用 XPS 数字签名 API 进行编程的主题。 本主题列出了在向应用程序添加数字签名支持时使用 XPS 数字签名 API 的以下注意事项。

XPS 数字签名 API 编程任务

本部分包含介绍如何使用 XPS 数字签名 API 执行编程任务的主题。

初始化签名管理器
对文档签名
向 XPS 文档添加签名请求
验证文档签名

从文件加载证书
验证证书是否支持签名方法
验证系统是否支持摘要方法
在文档中嵌入证书链

有关 XPS 数字签名 API 编程的特别说明

使用 XPS 数字签名 API 时,需要特别注意以下主题。

验证 XPS 文档中的数字签名

IXpsSignature::Verify 仅检查已签名的内容,以确定它自签名以来尚未更改。 IXpsSignature::Verify 不验证用于对文档内容签名的任何证书。

有关证书和加密的详细信息,请参阅关于加密

有关如何验证程序中的文档签名的示例,请参阅验证文档签名和证书

数字签名签名策略

数字签名签名策略决定了 XPS 文档的哪些部分被签名。 一个签名策略选项是签署从签名源部分开始的签名关系。 由于签名关系会随添加的每个签名发生更改,因此添加新签名时,在此策略下创建的签名将中断。 请务必清楚地了解设置此策略的影响和效果,否则,可能会出现意外或不希望发生的行为。

有关签名策略的详细信息,请参阅 XPS_SIGN_POLICY

嵌入证书链

构成特定证书的信任链的证书可以添加到 XPS 文档中。 嵌入这些证书可使应用程序更轻松地在离线场景中验证数字签名使用的证书。

有关如何在 XPS 文档中嵌入证书的详细信息,请参阅在文档中嵌入证书链

使用 CERT_CONTEXT 结构

CERT_CONTEXTCERT_INFO 结构是保存证书信息的主要数据结构。 有关使用这些结构的详细信息,请参阅使用 CERT_INFO 数据结构

加密 API 函数返回的 CERT_CONTEXT 结构在不再需要时必须释放。 要释放 CERT_CONTEXT 结构,请调用 CertFreeCertificateContext 函数。

常见数字签名编程任务

其他数字签名编程任务

CERT_CONTEXT

CERT_INFO

CertFreeCertificateContext

XPS_SIGN_POLICY

XML 纸张规范