PLVerifyModernDetachedCMS

Criptografia, assinaturas digitais

Descrição

Verifica um assinante de um CMS destacado moderno contra os bytes de dados originais

O verificador analisa o SignedData, confere o digest dos atributos assinados contra os dados e valida a assinatura bruta com a chave pública do certificado do assinante: Ed25519 em Pascal puro, ECDSA sobre os parâmetros da curva, ou RSA PKCS#1 e PSS via CNG

Sintaxe

Delphi

Function PLVerifyModernDetachedCMS(Const CMSBytes, Data: AnsiString;
  SignerIndex: Integer; Out SignerCount: Integer;
  Out NativeError: Cardinal): Integer;

Parâmetros

CMSBytesSignedData CMS destacado codificado em DER
DataOs bytes originais cobertos, a mesma entrada que foi hasheada no momento da assinatura
SignerIndexAssinante de base zero a verificar
SignerCountRecebe o número de assinantes encontrados no CMS
NativeErrorRecebe uma classe grosseira de falha: 13 para entrada malformada, 50 para problema de digest, ou o status CNG do primitivo que falhou

Valores retornados

0O CMS é analisável, mas seu algoritmo de assinatura não está no conjunto moderno, então este verificador não é responsável
1O assinante foi verificado com sucesso
2Uma etapa de análise, digest ou primitivo falhou; NativeError carrega o motivo

Observações

A comparação do digest de mensagem roda em tempo constante e os parâmetros PSS devem indicar o mesmo digest do SignerInfo, espelhando a RFC 4056; o resultado 0 avisa o chamador para entregar o blob ao verificador da plataforma

Veja também

PLBuildModernDetachedCMS, PLIsModernDetachedCMS, PLCertificateSubjectAndIssuer