PLBuildModernDetachedCMS

Criptografia, assinaturas digitais

Descrição

Constrói um CMS SignedData destacado em torno de assinaturas RSA, ECDSA ou Ed25519, para os algoritmos que a camada de mensagens da CryptoAPI do Windows não consegue exprimir

O certificado do assinante com o respetivo contexto de cadeia, o algoritmo de resumo, os DER de commitment type e de política de assinatura, o material de revogação e a política de padding entram todos por parâmetros, e a assinatura bruta vem do CNG NCrypt, de uma chamada de retorno de assinante externo de resumo ou do caminho Ed25519 em Pascal puro

Sintaxe

Delphi

Function PLBuildModernDetachedCMS(CertContext: Pointer;
  Const CertificateDER, Ed25519Seed, Data, SubFilter: AnsiString;
  DigestAlgorithm: Integer; Const CommitmentTypeDER,
  SignaturePolicyDER: AnsiString; NCryptKeyHandle: TPLIntPtr= 0;
  AllowPrivateKeyUI: Boolean= False;
  ExternalSigner: TPDFlibExternalDigestSignEvent= Nil;
  ExternalSender: TObject= Nil; ExternalSignProcessID: Integer= 0;
  ExternalSignatureAlgorithm: Integer= 0;
  RSAPSSPadding: Boolean= False;
  Const RevocationInfoDER: AnsiString= ''): AnsiString;

Parâmetros

CertContextHandle CERT_CONTEXT do Windows do certificado de assinatura; Nil para o caminho puramente externo
CertificateDERCertificado de assinatura codificado em DER, utilizado no certificado incorporado e nas referências de emissor e número de série
Ed25519SeedSeed de 32 bytes ao assinar Ed25519 sem CNG, senão vazia
DataOs bytes do intervalo já resumidos que a assinatura destacada cobre
SubFilter/SubFilter visado, como /ETSI.CAdES.detached, que orienta a seleção de atributos
DigestAlgorithmOrdinal do algoritmo de resumo compatível com Ord(TPDFlibDigestAlgorithm): 2 SHA-256, 3 SHA-384, 4 SHA-512, 5 a 7 a família SHA-3
CommitmentTypeDERAtributo de commitment type codificado em DER, vazio quando não existir
SignaturePolicyDERIdentificador de política de assinatura codificado em DER, vazio quando não existir
NCryptKeyHandleHandle de chave CNG aberto; 0 deixa a função abrir a própria chave privada do certificado, mostrando a UI opcionalmente
AllowPrivateKeyUIPermite o diálogo de aquisição de chave CNG quando a chave exige presença do utilizador
ExternalSignerChamada de retorno que recebe o resumo e devolve a assinatura bruta, para HSM ou assinatura remota
ExternalSenderRemetente devolvido à chamada de retorno ExternalSigner
ExternalSignProcessIDIdentificador de processo de assinatura devolvido à chamada de retorno
ExternalSignatureAlgorithmUm de PL_EXTERNAL_SIGNATURE_RSA_PKCS1, PL_EXTERNAL_SIGNATURE_ECDSA_DER, PL_EXTERNAL_SIGNATURE_ECDSA_P1363
RSAPSSPaddingSeleciona o padding RSASSA-PSS para assinaturas RSA
RevocationInfoDERInformação de revogação pré-recolhida para incorporar como RevocationInfoChoices

Valor devolvido

O CMS destacado codificado em DER, ou uma cadeia vazia quando qualquer passo de assinatura falha

Observações

Esta rotina é o motor por trás dos caminhos de assinatura moderna do processo de assinatura; chamá-la diretamente mantém controlo total sobre os atributos de commitment e política, e os bytes devolvidos encaixam no espaço do /Contents do PDF tal como com dados verificados por PLIsModernDetachedCMS

Consulte também

PLVerifyModernDetachedCMS, PLIsModernDetachedCMS, PLModernSignatureSizeEstimate, TPDFlibExternalDigestSignEvent, SetSignProcessExternalDigestSigner