Providers de assinatura modernos
HPDFSignatureProvider separa o parsing e a codificação CMS do armazenamento de chaves privadas e da criptografia de plataforma
Algoritmos de verificação
HPDFVerifyCMSSignatureEx verifica assinaturas CMS Ed25519 e Ed448 em modo puro através de THPDFPlatformSignatureProvider ou de um provider fornecido pelo chamador, e regista o OID exato da assinatura em THPDFSignatureInfo.SignatureAlgorithmOID
O parsing CMS cruza o conjunto de digests do contentor, o digest do assinante, os parâmetros do mecanismo de assinatura e o atributo opcional de proteção de algoritmos RFC 6211 antes do hashing ou do despacho para o provider; veja consistência de algoritmos de digest CMS para estados e códigos detalhados de problemas
ML-DSA-44, ML-DSA-65 e ML-DSA-87 usam o provider de plataforma quando disponível, mas a verificação em documentos carregados só os ativa quando o Catalog declara a extensão de developer PDF 2.0 do HotPDF
Providers de assinatura
THotPDF.SignPDFWithPFX e as overloads HPDFCMSSignPDFStream suportadas por PFX selecionam RSA, ECDSA, Ed25519 ou Ed448 a partir da identidade PKCS#12 correspondente, sem callback de assinatura fornecido pelo chamador
Os escalares privados ECDSA são assinados através do Windows CNG e devolvidos como valores ECDSA DER estritos, enquanto Ed25519 e Ed448 usam uma libcrypto OpenSSL 3 opcional, selecionada por THPDFCMSSignOptions.OpenSSLLibraryPath ou pelo caminho normal de pesquisa de bibliotecas
PureEdDSA assina o SET OF DER completo dos atributos assinados, em vez de um digest de atributos pré-calculado; Ed25519 combina esta entrada com digests de documento SHA-512 e Ed448 usa id-shake256-len com uma saída SHAKE256 de 512 bits
THPDFCMSSignOptions.SignerIdentifier seleciona a codificação de identidade issuer-and-serial ou X.509 SubjectKeyIdentifier, independentemente do provider de chaves privadas; veja assinantes CMS SubjectKeyIdentifier
THPDFCallbackSignatureProvider adapta callbacks da aplicação, enquanto THPDFRemoteSignatureProvider aplica limites de retry, cancelamento, entrada e assinatura em torno de um transporte remoto
THPDFCSCSignatureProvider implementa assinatura remota CSC API v2 sobre um transporte HTTP fornecido pela aplicação, incluindo renovação de tokens OAuth, descoberta de credenciais e da cadeia de certificados, aquisição explícita de SAD afixado por hash, lotes multisign ordenados e limitados, signatures/signHash síncrono ou assíncrono, polling limitado, timestamps RFC 3161, cancelamento e replay idempotente endereçado por conteúdo
THPDFPKCS11SignatureProvider serializa operações RSA e ECDSA contra uma sessão PKCS#11 autenticada e um handle de chave privada da propriedade do chamador, selecionando mecanismos RSA PKCS#1 v1.5, RSA-PSS ou ECDSA bruta específicos do digest, sem exportar material da chave
THPDFWindowsKeyStorageSignatureProvider abre chaves persistidas no KSP de smart-card da Microsoft ou em qualquer provider de armazenamento de chaves CNG nomeado, opcionalmente rejeita chaves de software através da propriedade Impl Type, aplica política de acesso silenciosa ou interativa e assina digests SHA-2 ou SHA3 com RSA PKCS#1 v1.5, RSA-PSS ou ECDSA
CreateFromKeyHandle adapta um NCRYPT_KEY_HANDLE existente e pode tanto o tomar por empréstimo como assumir a sua propriedade, permitindo que aplicações que já gerem autenticação de smart-card, TPM ou HSM do fornecedor retenham o controlo do ciclo de vida
HPDFCMSBuildSignedDataWithProvider constrói CMS destacado a partir do digest selecionado por THPDFCMSSignOptions.DigestAlgorithm, enquanto HPDFCMSSignPDFStreamWithProvider assina um placeholder de assinatura PDF existente através de cópias de stream limitadas, hashing de intervalos em streaming e patches de seek de largura fixa, sem reter um segundo PDF completo
HPDFCMSEstimatePlaceholder deriva um tamanho CMS sem efeitos colaterais a partir de um comprimento de assinatura explícito, de uma estimativa do provider ou do tamanho da chave do certificado RSA, e depois contabiliza a forma CMS estática exata e as reservas dinâmicas configuradas de timestamp ou contra-assinatura
HPDFCMSSignPDFStreamWithProviderAutoSize e HPDFCMSSignPDFStreamWithExternalSignerAutoSize reconstruem placeholders não assinados demasiado pequenos antes de assinar; as repetições pós-assinatura exigem a capacidade de provider spcSafeSignRetry, e os callbacks de assinantes externos nunca são repetidos depois de devolverem uma assinatura
Veja dimensionamento automático de placeholders CMS para opções de dimensionamento, contratos de reconstrução, política de retry e diagnósticos
Veja provider de assinatura remota CSC para os contratos de transporte, autorização, retry, polling e orçamento
Veja assinaturas e timestamps PDF SHA3 para política de digests, RFC 3161, Seed Value, provider e contratos de streaming
Veja assinaturas ECDSA Brainpool para requisitos de certificados de curvas nomeadas, a matriz SHA-2 e SHA3 específica por curva, a codificação DER estrita e a validação do produtor antes do provider
Contrato de pedido ao provider
THPDFSignatureProviderRequest transporta o algoritmo e o OID da assinatura, o OID do digest, o tipo de entrada de mensagem ou digest, o comprimento de salt PSS, a chave pública ou o certificado, o identificador de chave, o identificador de operação, a assinatura e o contexto de algoritmo
Um provider de assinatura devolve spsValid com uma assinatura não vazia, enquanto os providers de verificação usam spsValid ou spsInvalid; resultados não suportados, malformados, de erro do provider e cancelados continuam distintos