PLVerifyModernDetachedCMS
Criptografía, firmas digitales
Descripción
Verifica un firmante de un CMS detached moderno contra los bytes de datos originales
El verificador analiza el SignedData, coteja el digest de los atributos firmados contra los datos y luego valida la firma cruda con la llave pública del certificado del firmante: Ed25519 en Pascal puro, ECDSA sobre los parámetros de la curva, o RSA PKCS#1 y PSS a través de CNG
Sintaxis
Delphi
Function PLVerifyModernDetachedCMS(Const CMSBytes, Data: AnsiString;
SignerIndex: Integer; Out SignerCount: Integer;
Out NativeError: Cardinal): Integer;Parámetros
| CMSBytes | CMS SignedData detached codificado en DER |
|---|---|
| Data | Los bytes originales cubiertos, la misma entrada que se digirió al momento de firmar |
| SignerIndex | Firmante que verificar, en base cero |
| SignerCount | Recibe la cantidad de firmantes encontrados en el CMS |
| NativeError | Recibe una clase de fallo aproximada: 13 para entrada mal formada, 50 para problemas de digest, o el estado CNG de la primitiva que falló |
Valores devueltos
| 0 | El CMS se analiza pero su algoritmo de firma no está en el conjunto moderno, así que este verificador no es el responsable |
|---|---|
| 1 | El firmante se verificó correctamente |
| 2 | Falló un paso de análisis, digest o primitiva; NativeError trae el motivo |
Observaciones
La comparación del digest del mensaje corre en tiempo constante y los parámetros PSS deben nombrar el mismo digest que el SignerInfo, en línea con el RFC 4056; el resultado 0 le indica a quien llama que entregue el blob al verificador de la plataforma
Véase también
PLBuildModernDetachedCMS, PLIsModernDetachedCMS, PLCertificateSubjectAndIssuer