PLVerifyModernDetachedCMS

Kryptografi, digitale signaturer

Beskrivelse

Verificerer en signerer af et moderne detached CMS mod de originale databytes

Verificeringen parser SignedData, tjekker message-digesten i de signerede attributter mod dataene og validerer derefter den rå signatur med signerer-certifikatets offentlige nøgle: Ed25519 i ren Pascal, ECDSA over kurveparametrene eller RSA PKCS#1 og PSS gennem CNG

Syntaks

Delphi

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

Parametre

CMSBytesDER-kodet detached CMS-SignedData
DataDe originale dækkede bytes, samme input som blev digestedet på signeringstidspunktet
SignerIndexNulbaseret signerer, der skal verificeres
SignerCountModtager antallet af signerer, der blev fundet i CMS'et
NativeErrorModtager en grov fejlklasse, 13 for misdannet input, 50 for digest-problemer eller CNG-status for det fejlede primitiv

Returværdier

0CMS'et parses, men dets signaturalgoritme er ikke i det moderne sæt, så denne verificering er ikke ansvarlig
1Signereren blev verificeret
2Et parse-, digest- eller primitivtrin fejlede; NativeError bærer årsagen

Bemærkninger

Sammenligningen af message-digests er tidskonstant, og PSS-parametrene skal nævne samme digest som SignerInfo, helt efter RFC 4056; resultatet 0 siger til kalderen, at klumpen i stedet skal overlades til platformverificeringen

Se også

PLBuildModernDetachedCMS, PLIsModernDetachedCMS, PLCertificateSubjectAndIssuer