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
| CMSBytes | SignedData CMS destacado codificado em DER |
|---|---|
| Data | Os bytes originais cobertos, a mesma entrada que foi hasheada no momento da assinatura |
| SignerIndex | Assinante de base zero a verificar |
| SignerCount | Recebe o número de assinantes encontrados no CMS |
| NativeError | Recebe uma classe grosseira de falha: 13 para entrada malformada, 50 para problema de digest, ou o status CNG do primitivo que falhou |
Valores retornados
| 0 | O CMS é analisável, mas seu algoritmo de assinatura não está no conjunto moderno, então este verificador não é responsável |
|---|---|
| 1 | O assinante foi verificado com sucesso |
| 2 | Uma 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