Provider di Firma Moderni
HPDFSignatureProvider separa il parsing e la codifica CMS dall'archiviazione della chiave privata e dalla crittografia di piattaforma
Algoritmi di verifica
HPDFVerifyCMSSignatureEx verifica le firme CMS pure-mode Ed25519 ed Ed448 tramite THPDFPlatformSignatureProvider o un provider fornito dal chiamante e registra l'OID della firma esatta in THPDFSignatureInfo.SignatureAlgorithmOID
Il parsing CMS incrocia l'insieme dei digest del container, il digest del firmatario, i parametri del meccanismo di firma e l'attributo facoltativo algorithm-protection di RFC 6211 prima dell'hashing o del dispatch al provider; per stati e codici di errore dettagliati vedi CMS digest-algorithm consistency
ML-DSA-44, ML-DSA-65 e ML-DSA-87 usano il provider della piattaforma quando disponibile, ma la verifica dei documenti caricati li abilita solo quando il Catalog dichiara l'estensione sviluppatore HotPDF PDF 2.0
Provider di firma
THotPDF.SignPDFWithPFX e il HPDFCMSSignPDFStream selezionano RSA, ECDSA, Ed25519 o Ed448 dall'identità PKCS#12 abbinata senza un callback di firma fornito dal chiamante
Gli scalari privati ECDSA vengono firmati attraverso Windows CNG e restituiti come valori ECDSA DER rigorosi, mentre Ed25519 ed Ed448 usano un OpenSSL 3 opzionale libcrypto selezionati da THPDFCMSSignOptions.OpenSSLLibraryPath o il normale percorso di ricerca della libreria
PureEdDSA firma l'intero SET OF DER degli attributi firmati anziché un digest di attributi precalcolato; Ed25519 abbina questo input ai digest di documento SHA-512, mentre Ed448 usa id-shake256-len con un output SHAKE256 a 512 bit
THPDFCMSSignOptions.SignerIdentifier seleziona la codifica dell'identità come issuer-and-serial oppure come X.509 SubjectKeyIdentifier, indipendentemente dal provider della chiave privata; vedi CMS SubjectKeyIdentifier signers
THPDFCallbackSignatureProvider adatta le callback dell'applicazione, mentre THPDFRemoteSignatureProvider applica retry, cancellazione e limiti di input e firma limitati attorno a un trasporto remoto
THPDFCSCSignatureProvider implementa la firma remota CSC API v2 sopra un trasporto HTTP fornito dall'applicazione, inclusi refresh del token OAuth, scoperta di credenziali e catena di certificati, acquisizione esplicita di SAD con hash bloccato, ordinati e limitati multisign batch, sincroni o asincroni signatures/signHash sincrono o asincrono, polling con limiti, timestamp RFC 3161, cancellazione e replay idempotente delle operazioni
THPDFPKCS11SignatureProvider serializza le operazioni RSA ed ECDSA contro una sessione PKCS#11 autenticata e un handle di chiave privata di proprietà del chiamante, selezionando meccanismi RSA PKCS#1 v1.5, RSA-PSS o ECDSA grezzo specifici per digest senza esportare il materiale della chiave
THPDFWindowsKeyStorageSignatureProvider apre le chiavi persistite nel KSP della smart-card Microsoft o in qualsiasi provider di archiviazione chiavi CNG denominato, rifiuta facoltativamente le chiavi software tramite la proprietà Impl Type, applica un criterio di accesso silenzioso o interattivo e firma i digest SHA-256 con RSA PKCS#1 v1.5 o RSA-PSS
CreateFromKeyHandle adatta un NCRYPT_KEY_HANDLE esistente e può prenderlo in prestito o possederlo, consentendo alle applicazioni che gestiscono già l'autenticazione con smart-card, TPM o HSM del fornitore di conservare il controllo del ciclo di vita
HPDFCMSBuildSignedDataWithProvidercostruisce un CMS staccato dal digest selezionato da THPDFCMSSignOptions.DigestAlgorithm, mentreHPDFCMSSignPDFStreamWithProvider firma un segnaposto di firma PDF esistente tramite copie di flusso con limiti, hashing dei range in streaming e patch di seek a larghezza fissa senza conservare un secondo PDF completo
HPDFCMSEstimatePlaceholder deriva una dimensione CMS senza effetti collaterali da una lunghezza di firma esplicita, una stima del provider o la dimensione della chiave del certificato RSA, poi tiene conto della forma statica esatta del CMS e delle riserve dinamiche configurate per timestamp o controfirme
HPDFCMSSignPDFStreamWithProviderAutoSize e HPDFCMSSignPDFStreamWithExternalSignerAutoSize ricostruiscono i segnaposto non firmati sottodimensionati prima di firmare; i retry post-firma richiedono la capacità del provider spcSafeSignRetry e le callback del firmatario esterno non vengono mai ripetute dopo aver restituito una firma
Vedi Auto-sizing dei segnaposto CMS per le opzioni di dimensione, i contratti di ricostruzione, il criterio di retry e la diagnostica
Vedi CSC remote signature provider per i contratti di trasporto, autorizzazione, retry, polling e budget
Vedi SHA3 PDF signatures and timestamps per i contratti su policy dei digest, RFC 3161, Seed Value, provider e streaming
Vedi Brainpool ECDSA signatures per i requisiti dei certificati con named curve, la matrice SHA-2 e SHA3 specifica per curva, la codifica DER rigorosa e la validazione del producer con errore prima del provider
Contratto della richiesta del provider
THPDFSignatureProviderRequest trasporta l'algoritmo e l'OID della firma, l'OID del digest, il tipo di input del messaggio o digest, la lunghezza del sale PSS, la chiave pubblica o il certificato, l'identificatore di chiave, l'identificatore di operazione, la firma e il contesto dell'algoritmo
Un provider di firma restituisce spsValid con una firma non vuota, mentre i provider di verifica usano spsValid o spsInvalid; i risultati non supportati, malformati, di errore del provider e cancellati restano distinti