Coerenza degli Algoritmi di Digest CMS

HotPDF diagnostica identificatori di algoritmo CMS incoerenti prima di leggere gli intervalli firmati del documento, calcolare hash del contenuto, costruire percorsi di certificati o invocare un signature provider

Controlli di coerenza

Il SignerInfo.digestAlgorithm corrente deve essere presente nell'insieme SignedData.digestAlgorithms che lo contiene, mentre algoritmi extra non correlati restano permessi per contenitori multi-signer interoperabili

Gli OID di firma ECDSA e RSA PKCS#1 v1.5 specifici per digest e l'hash esplicito nei parametri RSA-PSS devono selezionare lo stesso digest di SignerInfo.digestAlgorithm

Quando è presente l'attributo firmato RFC 6211 CMSAlgorithmProtection, deve comparire una sola volta con un solo valore, e i suoi valori protetti di digest e firma AlgorithmIdentifier devono corrispondere ai campi effettivi di SignerInfo

Parametri assenti e DER NULL vengono confrontati come equivalenti per gli identificatori di algoritmo senza parametri; gli altri parametri si confrontano esattamente, così che i meccanismi di firma parametrizzati non possano essere normalizzati in silenzio

Risultato leggibile da macchina

HPDFParseCMSSignature conserva i metadati analizzati con successo ma imposta THPDFSignatureInfo.Status a svDigestAlgorithmMismatch quando un controllo di coerenza fallisce

La verifica restituisce svDigestAlgorithmMismatch, i rapporti di validazione usano vfcDigestAlgorithmMismatch e il JSON emette digestAlgorithmMismatch senza collassare la condizione in CMS malformato, algoritmo non supportato o mismatch del digest del contenuto

THPDFSignatureInfo.DigestAlgorithmOID registra l'OID del digest del firmatario e THPDFSignatureInfo.DigestConsistencyIssue seleziona una delle seguenti cause

Gli oggetti firmatario JSON espongono le stesse informazioni come digestAlgorithmOID e digestConsistencyIssue con i valori signerDigestNotDeclared, signatureDigestMismatch, algorithmProtectionDigestMismatch oppure algorithmProtectionSignatureMismatch

Timestamp e precedenza

I document timestamp RFC 3161 e i token di firma-timestamp non firmati applicano gli stessi controlli, e il loro valore THPDFTimestampInfo.DigestConsistencyIssue identifica un contenitore CMS annidato incoerente

Gli errori strutturali continuano a fallire come CMS malformato, i digest di firmatario sconosciuti restano non supportati, e il primo problema di coerenza deterministico viene mantenuto nell'ordine contenitore, algorithm-protection e poi meccanismo di firma

Vedere modern signature providers e THotPDF.VerifyLoadedSignatureWithOptions per i contratti di verifica di provider e documenti caricati