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