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, comprueba el resumen de los atributos firmados contra los datos y luego valida la firma bruta con la clave 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 resumió en el momento de firmar |
| SignerIndex | Firmante que verificar, en base cero |
| SignerCount | Recibe el número de firmantes encontrados en el CMS |
| NativeError | Recibe una clase de fallo aproximada: 13 para entrada mal formada, 50 para problemas de resumen, o el estado CNG de la primitiva fallida |
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, resumen o primitiva; NativeError lleva el motivo |
Observaciones
La comparación del resumen del mensaje es en tiempo constante y los parámetros PSS deben nombrar el mismo resumen que el SignerInfo, en línea con el RFC 4056; el resultado 0 le dice al llamador que entregue el blob al verificador de la plataforma
Véase también
PLBuildModernDetachedCMS, PLIsModernDetachedCMS, PLCertificateSubjectAndIssuer