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

CMSBytesCMS SignedData detached codificado en DER
DataLos bytes originales cubiertos, la misma entrada que se resumió en el momento de firmar
SignerIndexFirmante que verificar, en base cero
SignerCountRecibe el número de firmantes encontrados en el CMS
NativeErrorRecibe 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

0El CMS se analiza pero su algoritmo de firma no está en el conjunto moderno, así que este verificador no es el responsable
1El firmante se verificó correctamente
2Falló 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