我正在尝试使用 .pdf 文档的嵌入式时间戳实现 PAdES 数字签名。即,我想要实现的目标:
我正在使用执行 DDS 的受信任的提供者(TSP;外部方),因此我无权访问 TSP 用来签署消息摘要的私钥(.pfx 证书)。我一直在使用GemBox的 .NET 类库,并成功地使用以下函数将数字签名添加到 .pdf 文件中:
Gembox.Pdf.Form.PdfSignature Sign(Func<Stream, byte[]> signer, PdfSignatureFormat signatureFormat, int estimatedSignatureContentsLength)
我为参数“签名者”(参见上面的函数)传入另一个函数,该函数简单地从 TSP 提供者调用一个端点,该端点返回移动签名(作为字节 [])。然后签名成功添加 .pdf 文件(使用 GemBox 的签名过程):
现在我需要在签名中添加嵌入式时间戳,但由于 DDS 来自外部方,我不确定如何实现这一点。我遇到的所有代码示例都假设您拥有 .pfx 证书,即 DDS 与时间戳一起执行(参见例如此处),在我的情况下,我必须向我的 TSP 提出要求以提供我的 DDS 包含来自受信任的提供商的时间戳。
我希望有人可以在这里指出正确的方向并向我解释这是否真的可行,即在从外部方填充 DDS 时添加嵌入式时间戳。请注意,如果需要,我愿意探索其他 .NET 库,即 GemBox 以外的库。但是,我发现该库对于其他用途也非常有用。
提前致谢!