[英]C# Add Timestamp to PKCS#7 CMS Digital Signature
我是一名軟件開發人員,負責使用 PCKS#7 對文本文件進行數字簽名的項目。
有第三方負責分析簽名文件以告訴我們它是否正確。
我遇到的問題是他們說簽名者信息不包含時間戳。 他們向我保證我不需要為時間戳聘請外部可信服務器,服務器的時間戳就足夠了。
我在互聯網上搜索並想出了以下代碼來嘗試添加時間戳,但負責檢查文件的第三方表示問題仍然存在。
private byte[] Sign(byte[] content)
{
CmsSigner cmsSigner = new CmsSigner(_cert);
cmsSigner.UnsignedAttributes.Add(new Pkcs9SigningTime(DateTime.Now));
SignedCms signedCms = new SignedCms(new ContentInfo(content));
signedCms.ComputeSignature(cmsSigner, true);
return signedCms.Encode();
}
這就是我到目前為止所寫的關於數字簽名的內容。 為時間戳添加的行將是第二行:
cmsSigner.UnsignedAttributes.Add(new Pkcs9SigningTime(DateTime.Now));
我沒有想法,並且在我的一生中無法找到有用的文檔。
如何將時間戳附加到簽名者信息???
與@bartonjs 的評論一樣,問題是我將簽名時間添加到了 unsigned 屬性中。 更改代碼以將簽名時間添加到簽名屬性解決了我們的問題。
cmsSigner.SignedAttributes.Add(new Pkcs9SigningTime(DateTime.Now));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.