使用 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 文档添加签名请求
验证文档签名

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

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

使用 XPS 数字签名 API 时,以下主题需要一些特别考虑。

验证 XPS 文档中的数字签名

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

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

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

数字签名签名策略

数字签名签名策略确定 XPS 文档的哪些部分已签名。 一个签名策略选项是签署从签名源部件开始的签名关系。 由于签名关系会随添加的每个签名而更改,因此在此策略下进行的签名将在添加新签名时中断。 请确保清楚地了解设置此策略的含义和效果;否则,意外或意外的行为可能会导致。

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

嵌入证书链

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

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

使用 CERT_CONTEXT 结构

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

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

常见数字签名编程任务

其他数字签名编程任务

CERT_CONTEXT

CERT_INFO

CertFreeCertificateContext

XPS_SIGN_POLICY

XML 纸张规范