PLVerifyModernDetachedCMS

Crittografia, firme digitali

Descrizione

Verifica un firmatario di un CMS detached moderno contro i byte di dati originali

Il verificatore analizza il SignedData, controlla il message digest degli attributi firmati contro i dati e poi valida la firma grezza con la chiave pubblica del certificato del firmatario: Ed25519 in Pascal puro, ECDSA sui parametri della curva, oppure RSA PKCS#1 e PSS via CNG

Sintassi

Delphi

Function PLVerifyModernDetachedCMS(Const CMSBytes, Data: AnsiString;
  SignerIndex: Integer; Out SignerCount: Integer;
  Out NativeError: Cardinal): Integer;

Parametri

CMSBytesCMS SignedData detached codificato DER
DataI byte originali coperti, lo stesso input digerito al momento della firma
SignerIndexFirmatario da verificare, in base zero
SignerCountRiceve il numero di firmatari trovati nel CMS
NativeErrorRiceve una classe di fallimento approssimativa: 13 per input malformato, 50 per problemi di digest, oppure lo stato CNG della primitiva fallita

Valori restituiti

0Il CMS si analizza ma il suo algoritmo di firma non rientra nell'insieme moderno, quindi questo verificatore non ne è responsabile
1Il firmatario è stato verificato con successo
2Un passaggio di analisi, digest o primitiva è fallito; NativeError riporta il motivo

Note

Il confronto del message digest avviene in tempo costante e i parametri PSS devono indicare lo stesso digest del SignerInfo, in linea con il RFC 4056; il risultato 0 dice al chiamante di consegnare il blob al verificatore della piattaforma

Vedere anche

PLBuildModernDetachedCMS, PLIsModernDetachedCMS, PLCertificateSubjectAndIssuer