PLVerifyModernDetachedCMS
Cryptografie, digitale handtekeningen
Beschrijving
Verifieert een ondertekenaar van een moderne detached CMS tegen de oorspronkelijke databytes
De verificatie parst de SignedData, controleert de message digest van de ondertekende attributen tegen de data en valideert daarna de ruwe handtekening met de openbare sleutel van het ondertekenaarcertificaat: Ed25519 in pure Pascal, ECDSA over de curveparameters, of RSA PKCS#1 en PSS via CNG
Syntaxis
Delphi
Function PLVerifyModernDetachedCMS(Const CMSBytes, Data: AnsiString;
SignerIndex: Integer; Out SignerCount: Integer;
Out NativeError: Cardinal): Integer;Parameters
| CMSBytes | DER-gecodeerd detached CMS-SignedData |
|---|---|
| Data | De oorspronkelijke gedekte bytes, dezelfde invoer die bij het ondertekenen is gedigesteerd |
| SignerIndex | Op nul gebaseerde ondertekenaar om te verifiëren |
| SignerCount | Ontvangt het aantal ondertekenaars dat in de CMS is gevonden |
| NativeError | Ontvangt een grove foutklasse, 13 voor misvormde invoer, 50 voor digestproblemen of de CNG-status van het gefaalde primitief |
Retourwaarden
| 0 | De CMS parst, maar zijn handtekenalgoritme zit niet in de moderne set, deze verificatie is dus niet verantwoordelijk |
|---|---|
| 1 | De ondertekenaar is succesvol geverifieerd |
| 2 | Een parse-, digest- of primitiefstap faalde; NativeError draagt de reden |
Opmerkingen
De vergelijking van message digests verloopt tijdsonafhankelijk, en de PSS-parameters moeten dezelfde digest noemen als de SignerInfo, conform RFC 4056; resultaat 0 zegt de aanroeper de blob in plaats daarvan aan de platformverificateur over te dragen
Zie ook
PLBuildModernDetachedCMS, PLIsModernDetachedCMS, PLCertificateSubjectAndIssuer