SHA3 PDF 簽章與時間戳記
HotPDF 讓單一摘要原則貫穿分離式 CMS、簽署屬性、RSA 或 ECDSA 簽章識別碼、RFC 3161 訊息印記、簽章時間戳記、文件時間戳記、Seed Value 字典與已載入簽章驗證
摘要選擇
THPDFCMSDigestAlgorithm 提供 cmsdaSHA256、cmsdaSHA384、cmsdaSHA512、cmsdaSHA3_256、cmsdaSHA3_384 與 cmsdaSHA3_512
Options := HPDFCMSDefaultOptions(palBaseline_B_T);
Options.DigestAlgorithm := cmsdaSHA3_384;
Options.SignatureScheme := cmsRSAPSS;
Options.PSSSaltLength := 48;
HPDFCMSBuildSignedDataEx、串流簽署函式、外部簽署者與簽章提供者都使用選定的摘要,沒有 SHA-256 後備
RSA PKCS#1 v1.5 使用摘要專屬的 DigestInfo,RSA-PSS 使用相符的雜湊與 MGF1 參數,cmsECDSA 則為選定摘要輸出合併的 ECDSA 簽章 OID
時間戳記原則
GetContentTimeStamp 收到選定的文件摘要,GetSignatureTimeStamp 則收到 CMS 簽章值的選定摘要
除非訊息印記的 OID 與位元組都符合選定的摘要原則,否則回傳的 RFC 3161 權杖會被拒絕
帶 DigestAlgorithm 參數的 THotPDF.RenewPAdESLTATimestamp 多載對封存時間戳記更新套用相同原則,相容多載則維持 SHA-256
PDF 宣告與 Seed Value
在 THPDFPage.AttachPAdESSeedValue 使用 SHA3-256、SHA3-384 或 SHA3-512 會自動宣告 ISO 32001 PDF 2.0 開發者延伸
catalog 項目使用 /Extensions /ISO_,搭配 /BaseVersion /2.0、/ExtensionLevel 32001、/ExtensionRevision (:2022) 與 /Type /DeveloperExtensions
提供者需求
THPDFPKCS11SignatureProvider 把 SHA3 請求對應到相應的 PKCS#11 雜湊與 MGF 識別碼,並把原始 ECDSA 簽章轉成 CMS DER
THPDFWindowsKeyStorageSignatureProvider 把選定的 SHA3 演算法傳給 CNG,同樣把原始 ECDSA 簽章轉成 CMS DER
SignPDFWithSystemCertificate 對 Windows 憑證儲存區金鑰套用相同的 CNG 原則,舊式 CryptoAPI 金鑰則明確拒絕 SHA3
權杖、金鑰儲存提供者或 Windows 版本未實作要求的 SHA3 演算法時,會回傳明確的不支援狀態
串流效能
PDF 位元組範圍以有界區塊計算雜湊,SHA3 簽署可與 PDF MAC 產生共用同一趟範圍掃描,兩個原則選了相同演算法時甚至直接重用摘要