PLVerifyModernDetachedCMS
Cryptographie, signatures numériques
Description
Vérifie un signataire d'un CMS détaché moderne par rapport aux octets de données d'origine
Le vérificateur analyse le SignedData, confronte le condensat des attributs signés aux données, puis valide la signature brute avec la clé publique du certificat du signataire: Ed25519 en Pascal pur, ECDSA sur les paramètres de la courbe, ou RSA PKCS#1 et PSS via CNG
Syntaxe
Delphi
Function PLVerifyModernDetachedCMS(Const CMSBytes, Data: AnsiString;
SignerIndex: Integer; Out SignerCount: Integer;
Out NativeError: Cardinal): Integer;Paramètres
| CMSBytes | CMS SignedData détaché encodé en DER |
|---|---|
| Data | Les octets couverts d'origine, la même entrée que celle condensée au moment de la signature |
| SignerIndex | Signataire à vérifier, en base zéro |
| SignerCount | Reçoit le nombre de signataires trouvés dans le CMS |
| NativeError | Reçoit une classe d'échec grossière: 13 pour une entrée mal formée, 50 pour un problème de condensat, ou le statut CNG de la primitive défaillante |
Valeurs de retour
| 0 | Le CMS s'analyse mais son algorithme de signature n'est pas dans l'ensemble moderne, donc ce vérificateur n'est pas responsable |
|---|---|
| 1 | Le signataire a été vérifié avec succès |
| 2 | Une étape d'analyse, de condensat ou de primitive a échoué; NativeError porte la raison |
Remarques
La comparaison du condensat du message se fait en temps constant et les paramètres PSS doivent nommer le même condensat que le SignerInfo, conformément au RFC 4056; le résultat 0 dit à l'appelant de confier le blob au vérificateur de la plateforme
Voir aussi
PLBuildModernDetachedCMS, PLIsModernDetachedCMS, PLCertificateSubjectAndIssuer