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

CMSBytesCMS SignedData détaché encodé en DER
DataLes octets couverts d'origine, la même entrée que celle condensée au moment de la signature
SignerIndexSignataire à vérifier, en base zéro
SignerCountReçoit le nombre de signataires trouvés dans le CMS
NativeErrorReç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

0Le CMS s'analyse mais son algorithme de signature n'est pas dans l'ensemble moderne, donc ce vérificateur n'est pas responsable
1Le signataire a été vérifié avec succès
2Une é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