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
| CertContext | Handle CERT_CONTEXT do Windows do certificado de assinatura; Nil para o caminho puramente externo |
|---|---|
| CertificateDER | Certificado de assinatura codificado em DER, utilizado no certificado incorporado e nas referências de emissor e número de série |
| Ed25519Seed | Seed de 32 bytes ao assinar Ed25519 sem CNG, senão vazia |
| Data | Os bytes do intervalo já resumidos que a assinatura destacada cobre |
| SubFilter | /SubFilter visado, como /ETSI.CAdES.detached, que orienta a seleção de atributos |
| DigestAlgorithm | Ordinal 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 |
| CommitmentTypeDER | Atributo de commitment type codificado em DER, vazio quando não existir |
| SignaturePolicyDER | Identificador de política de assinatura codificado em DER, vazio quando não existir |
| NCryptKeyHandle | Handle de chave CNG aberto; 0 deixa a função abrir a própria chave privada do certificado, mostrando a UI opcionalmente |
| AllowPrivateKeyUI | Permite o diálogo de aquisição de chave CNG quando a chave exige presença do utilizador |
| ExternalSigner | Chamada de retorno que recebe o resumo e devolve a assinatura bruta, para HSM ou assinatura remota |
| ExternalSender | Remetente devolvido à chamada de retorno ExternalSigner |
| ExternalSignProcessID | Identificador de processo de assinatura devolvido à chamada de retorno |
| ExternalSignatureAlgorithm | Um de PL_EXTERNAL_SIGNATURE_RSA_PKCS1, PL_EXTERNAL_SIGNATURE_ECDSA_DER, PL_EXTERNAL_SIGNATURE_ECDSA_P1363 |
| RSAPSSPadding | Seleciona o padding RSASSA-PSS para assinaturas RSA |
| RevocationInfoDER | Informaçã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