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, verifica o resumo 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 resumida 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 resumo, ou o estado CNG do primitivo que falhou

Valores devolvidos

0O CMS é analisável, mas o respetivo algoritmo de assinatura não está no conjunto moderno, pelo que este verificador não é responsável
1O assinante foi verificado com sucesso
2Um passo de análise, resumo ou primitivo falhou; NativeError transporta o motivo

Observações

A comparação do resumo de mensagem corre em tempo constante e os parâmetros PSS têm de indicar o mesmo resumo do SignerInfo, espelhando a RFC 4056; o resultado 0 diz ao chamador para entregar o blob ao verificador da plataforma

Consulte também

PLBuildModernDetachedCMS, PLIsModernDetachedCMS, PLCertificateSubjectAndIssuer