我正在嘗試?yán)斫夂蛯?shí)施基于歐盟委員會(huì)贊助的數(shù)字簽名服務(wù)項(xiàng)目的解決方案。我目前已經(jīng)在 Nowina NexU 客戶端軟件的幫助下成功地使用了前面提到的 github 鏈接中提到的 DSS-DEMO 應(yīng)用程序提供的抽象。我的愿望是使用以下配置對(duì) PDF 文檔進(jìn)行數(shù)字簽名:沒有容器PAdES 簽名表籠罩PAdES_BASELINE_LT 簽名級(jí)別SHA256 摘要算法我希望簽名有一個(gè)可見的部分,即可以在文檔的第一頁(yè)上看到。這在一定程度上證明了這里。就個(gè)人而言,我需要實(shí)際的簽名時(shí)間戳和她證書中的簽名者姓名。在上面的演示中,這是通過向簽名函數(shù)提供“參數(shù)”來(lái)完成的。我還想填寫簽名的 Reason 字段 - 當(dāng)您使用 Adobe Acrobat Reader 等程序查看簽名屬性時(shí),它隨后會(huì)顯示。到目前為止,我的問題如下,我似乎找不到關(guān)于它們的示例或其他類型的信息。如果我想顯示從 Timestamp Authority 服務(wù)獲得的簽名時(shí)間戳,我將如何獲取它,因?yàn)榕c時(shí)間戳服務(wù)器的通信是在簽名過程中完成的,即在指定我上面提到的參數(shù)之后。我想我必須深入研究 DSS 代碼并自己完成所有步驟。目前,奇怪的事情發(fā)生了。當(dāng)我指定硬編碼的原因(如“testtest”)或根本沒有原因時(shí),簽名似乎被認(rèn)為是有效的,或者至少是未知的。當(dāng)我根據(jù)其他結(jié)果填寫時(shí),簽名無(wú)效。因?yàn)檫@樣的事情通常不會(huì)通過魔法發(fā)生,我一定是做錯(cuò)了什么。代碼的組織方式大致如下 - 兩臺(tái)機(jī)器之間存在 REST 通信 - 一個(gè)服務(wù)器和一個(gè)安裝了 NexU 的客戶端。NexU 與智能卡或客戶端計(jì)算機(jī)上的任何其他證書存儲(chǔ)進(jìn)行所有通信 - 它與服務(wù)器交換摘要值和簽名摘要值。其中,服務(wù)器代碼中有兩個(gè)特定階段:getDataToSign - 這里的摘要是從 PDF 內(nèi)容中計(jì)算出來(lái)的signDocument - 這里是實(shí)際的簽名 - (我猜是將簽名嵌入到文檔中?)。我為這兩個(gè)階段提供了大量參數(shù),其中包括指定簽名時(shí)間戳、原因和我希望出現(xiàn)在第一頁(yè)上的文本的視覺參數(shù)。我在兩個(gè)階段使用相同的參數(shù)執(zhí)行此操作(因?yàn)槲也淮_定應(yīng)該在哪個(gè)階段給出哪個(gè)階段)我的簽名日期 - 盡可能接近時(shí)間戳授權(quán)服務(wù)器的時(shí)間戳是否合乎邏輯?好的 - 在簽名過程開始時(shí),我將其設(shè)置為我自己服務(wù)器的當(dāng)前時(shí)間戳。我正在使用 PADSSignatureParameters.setReason 設(shè)置 Reason。任何有用的見解表示贊賞 - 謝謝。
添加回答
舉報(bào)
0/150
提交
取消