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

CMSBytesDER-gecodeerd detached CMS-SignedData
DataDe oorspronkelijke gedekte bytes, dezelfde invoer die bij het ondertekenen is gedigesteerd
SignerIndexOp nul gebaseerde ondertekenaar om te verifiëren
SignerCountOntvangt het aantal ondertekenaars dat in de CMS is gevonden
NativeErrorOntvangt een grove foutklasse, 13 voor misvormde invoer, 50 voor digestproblemen of de CNG-status van het gefaalde primitief

Retourwaarden

0De CMS parst, maar zijn handtekenalgoritme zit niet in de moderne set, deze verificatie is dus niet verantwoordelijk
1De ondertekenaar is succesvol geverifieerd
2Een 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