PLVerifyModernDetachedCMS

Kryptografie, digitální podpisy

Popis

Ověřuje podepisujícího moderního odděleného CMS vůči původním bajtům dat

Verifikátor rozparsuje SignedData, zkontroluje haš zprávy v podepsaných atributech proti datům a pak ověří surovou podpis veřejným klíčem certifikátu podepisujícího: čistě paskalovské Ed25519, ECDSA nad parametry křivky, nebo RSA PKCS#1 a PSS přes CNG

Syntaxe

Delphi

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

Parametry

CMSBytesDER kódovaný oddělený CMS SignedData
DataPůvodní pokryté bajty, tentýž vstup, který se při podpisu hašoval
SignerIndexOvěřovaný podepisující s indexací od nuly
SignerCountPřebírá počet podepisujících nalezených v CMS
NativeErrorPřebírá hrubou třídu selhání: 13 pro poškozený vstup, 50 pro potíže s haší, nebo stav CNG spadlého primitiva

Návratové hodnoty

0CMS se parsuje, ale jeho podpisový algoritmus není v moderní sadě, takže tento verifikátor za něj neodpovídá
1Podepisující byl úspěšně ověřen
2Selhal krok parsování, haše nebo primitiva; důvod nese NativeError

Poznámky

Porovnání haše zprávy běží v konstantním čase a parametry PSS musí jmenovat tentýž haš jako SignerInfo, v duchu RFC 4056; výsledek 0 říká volajícímu, aby blob předal platformnímu verifikátoru

Viz také

PLBuildModernDetachedCMS, PLIsModernDetachedCMS, PLCertificateSubjectAndIssuer