現代簽章提供者

HPDFSignatureProvider 把 CMS 解析與編碼,從私鑰儲存與平台密碼學中分離出來

驗證演算法

HPDFVerifyCMSSignatureEx 透過 THPDFPlatformSignatureProvider 或呼叫端提供的提供者驗證 Ed25519 與 Ed448 純模式 CMS 簽章,並把確切的簽章 OID 記在 THPDFSignatureInfo.SignatureAlgorithmOID

CMS 解析會在計算雜湊或分派給提供者之前,交叉檢查容器摘要集合、簽署者摘要、簽章機制參數與選用的 RFC 6211 演算法保護屬性;狀態與詳細問題代碼參見 CMS 摘要演算法一致性

ML-DSA-44、ML-DSA-65 與 ML-DSA-87 在可用時使用平台提供者,但已載入文件的驗證只有在 Catalog 宣告了 HotPDF PDF 2.0 開發者延伸時才啟用它們

簽署提供者

THotPDF.SignPDFWithPFX 與 PFX 版的 HPDFCMSSignPDFStream 多載會從相符的 PKCS#12 身分中挑選 RSA、ECDSA、Ed25519 或 Ed448,不需要呼叫端提供簽署回呼

ECDSA 私有純量透過 Windows CNG 簽署並以嚴格 DER ECDSA 值傳回,Ed25519 與 Ed448 則使用選用的 OpenSSL 3 libcrypto,可由 THPDFCMSSignOptions.OpenSSLLibraryPath 指定或走一般的程式庫搜尋路徑

PureEdDSA 簽署完整的 DER SET OF 簽署屬性,而不是預先算好的屬性摘要;Ed25519 把這個輸入搭配 SHA-512 文件摘要,Ed448 則使用 id-shake256-len 並輸出 512 位元的 SHAKE256

THPDFCMSSignOptions.SignerIdentifier 可獨立於私鑰提供者,挑選簽發者加序號或 X.509 SubjectKeyIdentifier 的身分編碼;參見 CMS SubjectKeyIdentifier 簽署者

THPDFCallbackSignatureProvider 轉接應用程式回呼,THPDFRemoteSignatureProvider 則在遠端傳輸外套上有界的重試、取消、輸入與簽章限制

THPDFCSCSignatureProvider 在應用程式提供的 HTTP 傳輸上實作 CSC API v2 遠端簽署,涵蓋 OAuth token 更新、憑證與憑證鏈探索、明確綁定雜湊的 SAD 取得、有界的有序 multisign 批次、同步或非同步的 signatures/signHash、有界輪詢、RFC 3161 時間戳記、取消,以及以內容定址的冪等重放

THPDFPKCS11SignatureProvider 針對呼叫端持有的已驗證 PKCS#11 工作階段與私鑰控制代碼序列化 RSA 與 ECDSA 操作,挑選摘要專屬的 RSA PKCS#1 v1.5、RSA-PSS 或原始 ECDSA 機制,且不匯出金鑰材料

THPDFWindowsKeyStorageSignatureProvider 會開啟 Microsoft 智慧卡 KSP 或任何具名 CNG 金鑰儲存提供者中的持續金鑰,可選擇透過 Impl Type 屬性拒絕軟體金鑰,套用靜音或互動式存取原則,並以 RSA PKCS#1 v1.5、RSA-PSS 或 ECDSA 簽署 SHA-2 或 SHA3 摘要

CreateFromKeyHandle 可轉接既有的 NCRYPT_KEY_HANDLE,借用或擁有皆可,已自行管理智慧卡、TPM 或廠商 HSM 驗證的應用程式因此能保留生命週期控制權

HPDFCMSBuildSignedDataWithProvider 以 THPDFCMSSignOptions.DigestAlgorithm 選定的摘要建立分離式 CMS,HPDFCMSSignPDFStreamWithProvider 則透過有界的串流複製、串流式範圍雜湊與固定寬度 seek 修補來簽署既有的 PDF 簽章佔位符,過程中不保留第二份完整 PDF

HPDFCMSEstimatePlaceholder 從明確的簽章長度、提供者估計值或 RSA 憑證金鑰大小,推導出無副作用的 CMS 大小,再計入確切的靜態 CMS 形狀與設定的動態時間戳記或副署保留空間

HPDFCMSSignPDFStreamWithProviderAutoSize 與 HPDFCMSSignPDFStreamWithExternalSignerAutoSize 會在簽署前重建過小的未簽署佔位符;簽署後重試需要提供者能力 spcSafeSignRetry,而外部簽署者回呼在回傳簽章之後絕不會再被重複呼叫

大小選項、重建契約、重試原則與診斷參見 CMS 佔位符自動調整大小

傳輸、授權、重試、輪詢與預算契約參見 CSC 遠端簽章提供者

摘要原則、RFC 3161、Seed Value、提供者與串流契約參見 SHA3 PDF 簽章與時間戳記

具名曲線憑證需求、曲線專屬的 SHA-2 與 SHA3 矩陣、嚴格 DER 編碼,以及提供者之前的失敗式產生端驗證,參見 Brainpool ECDSA 簽章

提供者要求契約

THPDFSignatureProviderRequest 攜帶簽章演算法與 OID、摘要 OID、訊息或摘要輸入種類、PSS 鹽長度、公鑰或憑證、金鑰識別碼、操作識別碼、簽章與演算法內容

簽署提供者以非空簽章回傳 spsValid,驗證提供者則使用 spsValid 或 spsInvalid;不支援、格式錯誤、提供者錯誤與已取消的結果仍各自分明