Proveedores de firma modernos

HPDFSignatureProvider separa el análisis y la codificación de CMS del almacenamiento de claves privadas y la criptografía de la plataforma

Algoritmos de verificación

HPDFVerifyCMSSignatureEx verifica las firmas CMS en modo puro Ed25519 y Ed448 a través de THPDFPlatformSignatureProvider o de un proveedor suministrado por el llamador, y registra el OID exacto de la firma en THPDFSignatureInfo.SignatureAlgorithmOID

El parseo CMS coteja el conjunto de digests del contenedor, el digest del firmante, los parámetros del mecanismo de firma y el atributo opcional de protección de algoritmo RFC 6211 antes del hashing o del despacho al proveedor; consulte consistencia del algoritmo de resumen CMS para ver los estados y los códigos de incidencia detallados

ML-DSA-44, ML-DSA-65 y ML-DSA-87 usan el proveedor de la plataforma cuando está disponible, pero la verificación de documentos cargados los habilita únicamente cuando el Catalog declara la extensión de desarrollador HotPDF PDF 2.0

Proveedores de firmado

THotPDF.SignPDFWithPFX y las sobrecargas de HPDFCMSSignPDFStream respaldadas por PFX seleccionan RSA, ECDSA, Ed25519 o Ed448 de la identidad PKCS#12 emparejada sin un callback de firmado suministrado por el llamador

Los escalares privados ECDSA se firman mediante Windows CNG y se devuelven como valores ECDSA DER estrictos, mientras que Ed25519 y Ed448 usan una libcrypto OpenSSL 3 opcional seleccionada por THPDFCMSSignOptions.OpenSSLLibraryPath o por la ruta de búsqueda de bibliotecas normal

PureEdDSA firma el SET OF DER completo de atributos firmados en lugar de un digest de atributos precalculado; Ed25519 empareja esta entrada con digests de documento SHA-512 y Ed448 usa id-shake256-len con una salida SHAKE256 de 512 bits

THPDFCMSSignOptions.SignerIdentifier selecciona la codificación de identidad issuer-and-serial o SubjectKeyIdentifier X.509 de forma independiente del proveedor de clave privada; consulte firmantes CMS SubjectKeyIdentifier

THPDFCallbackSignatureProvider adapta callbacks de la aplicación, mientras que THPDFRemoteSignatureProvider aplica límites acotados de reintento, cancelación, entrada y firma alrededor de un transporte remoto

THPDFCSCSignatureProvider implementa firma remota CSC API v2 sobre un transporte HTTP suministrado por la aplicación, incluidos refresco de token OAuth, descubrimiento de credenciales y cadena de certificados, adquisición explícita de SAD anclada al hash, lotes multisign ordenados y acotados, signatures/signHash síncrono o asíncrono, sondeo acotado, timestamps RFC 3161, cancelación y reproducción idempotente direccionada por contenido

THPDFPKCS11SignatureProvider serializa las operaciones RSA y ECDSA contra una sesión PKCS#11 autenticada y un manejador de clave privada propiedad del llamador, seleccionando mecanismos RSA PKCS#1 v1.5 específicos del digest, RSA-PSS o ECDSA en bruto sin exportar material de clave

THPDFWindowsKeyStorageSignatureProvider abre claves persistidas en el KSP de tarjetas inteligentes de Microsoft o en cualquier proveedor de almacenamiento de claves CNG con nombre, rechaza opcionalmente claves de software mediante la propiedad Impl Type, aplica una política de acceso silenciosa o interactiva, y firma digests SHA-2 o SHA3 con RSA PKCS#1 v1.5, RSA-PSS o ECDSA

CreateFromKeyHandle adapta un NCRYPT_KEY_HANDLE existente y puede tomarlo prestado o ser propietario, lo que permite a las aplicaciones que ya gestionan la autenticación de tarjetas inteligentes, TPM o HSM de fabricante conservar el control del ciclo de vida

HPDFCMSBuildSignedDataWithProvider construye CMS destacado a partir del digest seleccionado por THPDFCMSSignOptions.DigestAlgorithm, mientras HPDFCMSSignPDFStreamWithProvider firma un placeholder de firma PDF existente mediante copias de stream acotadas, hashing de rangos en streaming y parches seek de ancho fijo, sin retener un segundo PDF completo

HPDFCMSEstimatePlaceholder deriva un tamaño CMS sin efectos secundarios a partir de una longitud de firma explícita, una estimación del proveedor o el tamaño de clave del certificado RSA, y después contabiliza la forma estática exacta del CMS y las reservas dinámicas configuradas de timestamp o contrafirma

HPDFCMSSignPDFStreamWithProviderAutoSize y HPDFCMSSignPDFStreamWithExternalSignerAutoSize reconstruyen placeholders sin firmar de tamaño insuficiente antes de firmar; los reintentos tras firmar exigen la capacidad de proveedor spcSafeSignRetry, y los callbacks de firmante externo nunca se repiten tras devolver una firma

Consulte dimensionado automático de placeholders CMS para opciones de tamaño, contratos de reconstrucción, política de reintentos y diagnóstico

Consulte proveedor de firma remota CSC para los contratos de transporte, autorización, reintento, polling y presupuesto

Consulte firmas y timestamps PDF SHA3 para la política de digest, RFC 3161, Seed Value, proveedor y contratos de streaming

Consulte firmas ECDSA Brainpool para los requisitos de certificados de curvas con nombre, la matriz SHA-2 y SHA3 específica de cada curva, la codificación DER estricta y la validación del productor antes del proveedor

Contrato de solicitud al proveedor

THPDFSignatureProviderRequest lleva el algoritmo y OID de firma, OID de digest, tipo de entrada de mensaje o digest, longitud de sal PSS, clave pública o certificado, identificador de clave, identificador de operación, firma y contexto de algoritmo

Un proveedor de firma devuelve spsValid con una firma no vacía, mientras que los proveedores de verificación usan spsValid o spsInvalid; los resultados no soportados, malformados, de error de proveedor y cancelados siguen siendo distintos