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
| CMSBytes | DER kódovaný oddělený CMS SignedData |
|---|---|
| Data | Původní pokryté bajty, tentýž vstup, který se při podpisu hašoval |
| SignerIndex | Ověřovaný podepisující s indexací od nuly |
| SignerCount | Přebírá počet podepisujících nalezených v CMS |
| NativeError | Př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
| 0 | CMS se parsuje, ale jeho podpisový algoritmus není v moderní sadě, takže tento verifikátor za něj neodpovídá |
|---|---|
| 1 | Podepisující byl úspěšně ověřen |
| 2 | Selhal 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