Moderní poskytovatelé podpisu
HPDFSignatureProvider odděluje parsání a kódování CMS od úložiště soukromých klíčů a kryptografie platformy
Verifikační algoritmy
HPDFVerifyCMSSignatureEx verifikuje CMS podpisy Ed25519 a Ed448 v pure módu přes THPDFPlatformSignatureProvider nebo provider dodaný volajícím a zaznamená přesný OID podpisu v THPDFSignatureInfo.SignatureAlgorithmOID
HotPDF spojuje místní, vzdálené a systémové poskytovatele podpisu prostřednictvím společné smlouvy CMS
Poskytovatelé deklarují možnosti, velikostní odhad a bezpečnost opakování, aby podepisování zůstalo deterministické a bezpečné
Podpisové providery
THotPDF.SignPDFWithPFX a přetížení HPDFCMSSignPDFStream založená na PFX vybírají RSA, ECDSA, Ed25519 nebo Ed448 z odpovídající identity PKCS#12 bez podpisového callbacku od volajícího
Soukromé skaláry ECDSA se podepisují přes Windows CNG a vrací jako přísné hodnoty DER ECDSA, zatímco Ed25519 a Ed448 používají volitelné OpenSSL 3 libcrypto vybrané přes THPDFCMSSignOptions.OpenSSLLibraryPath nebo normální vyhledávací cestu knihoven
PureEdDSA podepisuje kompletní DER SET OF podepsaných atributů, nikoli předpočítaný digest atributů; Ed25519 páruje tento vstup s dokumentovými digesty SHA-512 a Ed448 používá id-shake256-len s 512bitovým výstupem SHAKE256
THPDFCMSSignOptions.SignerIdentifier vybírá kódování identity issuer-and-serial nebo X.509 SubjectKeyIdentifier nezávisle na provideru soukromého klíče; viz Podepsující CMS SubjectKeyIdentifier
THPDFCallbackSignatureProvider adaptuje callbacky aplikace, zatímco THPDFRemoteSignatureProvider aplikuje ohraničené limity opakování, zrušení, vstupu a podpisu kolem vzdáleného transportu
THPDFCSCSignatureProvider implementuje vzdálené podepisování CSC API v2 nad HTTP transportem dodaným aplikací, včetně obnovy OAuth tokenu, discovery přihlašovacích údajů a řetězce certifikátů, explicitní získání SAD pinovaného na hash, ohraničených uspořádaných dávek multisign, synchronního či asynchronního signatures/signHash, ohraničeného pollingu, časových razítek RFC 3161, zrušení a obsahem adresované idempotentní replay
THPDFPKCS11SignatureProvider serializuje operace RSA a ECDSA vůči session PKCS#11 autentizované volajícím a handle soukromého klíče a vybírá mechanismy RSA PKCS#1 v1.5, RSA-PSS nebo raw ECDSA specifické pro digest, bez exportu materiálu klíče
THPDFWindowsKeyStorageSignatureProvider otevírá persistované klíče v Microsoft smart-card KSP nebo jakémkoli pojmenovaném CNG key-storage provideru, volitelně odmítá softwarové klíče přes vlastnost Impl Type, aplikuje tichou nebo interaktivní přístupovou politiku a podepisuje digesty SHA-2 nebo SHA3 s RSA PKCS#1 v1.5, RSA-PSS nebo ECDSA
CreateFromKeyHandle adaptuje existující NCRYPT_KEY_HANDLE a může si ho buď půjčit, nebo převzít, takže aplikace, které už spravují autentizaci smart card, TPM nebo vendor HSM, si zachovají kontrolu životního cyklu
HPDFCMSBuildSignedDataWithProvider staví detached CMS z digestu vybraného v THPDFCMSSignOptions.DigestAlgorithm, zatímco HPDFCMSSignPDFStreamWithProvider podepisuje existující zástupný podpis PDF přes ohraničené kopie streamu, streamované hashování rozsahů a seek patche pevné šířky, bez udržování kompletní druhé kopie PDF
HPDFCMSEstimatePlaceholder odvodí velikost CMS bez vedlejších účinků z explicitní délky podpisu, odhadu providera nebo velikosti klíče RSA certifikátu, poté započítá přesný statický tvar CMS a nastavené dynamické rezervy časového razítka nebo protipodpisu
HPDFCMSSignPDFStreamWithProviderAutoSize a HPDFCMSSignPDFStreamWithExternalSignerAutoSize přestaví poddimenzované nepodepsané zástupné symboly před podpisem; opakovaný pokus po podpisu vyžaduje schopnost providera spcSafeSignRetry a callbacky externích podepsujících se po vrácení podpisu nikdy neopakují
Viz Automatická velikost CMS zástupných symbolů pro volby velikosti, kontrakty přestavby, politiku opakování a diagnostiku
Viz Vzdálený podpisový provider CSC pro kontrakty transportu, autorizace, opakování, pollingu a rozpočtů
Viz PDF podpisy a časová razítka SHA3 pro politiku digestů, RFC 3161, Seed Value, providery a streamovací kontrakty
Viz Podpisy Brainpool ECDSA pro požadavky certifikátů pojmenovaných křivek, matici SHA-2 a SHA3 pro konkrétní křivky, přísné kódování DER a validaci producenta selhávající před providerem
Kontrakt žádosti providera
THPDFSignatureProviderRequest nese podpisový algoritmus a OID, OID digestu, druh vstupu message nebo digest, délku soli PSS, veřejný klíč nebo certifikát, identifikátor klíče, identifikátor operace, podpis a kontext algoritmu
Podpisový provider vrací spsValid s neprázdným podpisem, verifikační providery používají spsValid nebo spsInvalid; výsledky unsupported, malformed, provider-error a cancelled zůstávají odlišné