Proveedores de firma modernos
HPDFSignatureProvider separa el parseo y la codificación CMS del almacenamiento de claves privadas y la criptografía de la plataforma
Algoritmos de verificación
HPDFVerifyCMSSignatureEx verifica firmas CMS pure-mode Ed25519 y Ed448 a través de THPDFPlatformSignatureProvider o de un provider proporcionado por el llamador, y registra el OID exacto de la firma en THPDFSignatureInfo.SignatureAlgorithmOID
El parseo CMS valida de forma cruzada 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 algoritmos de RFC 6211 antes de hacer hashing o despachar al provider; consulte la consistencia de digests CMS para ver los estados y los códigos de detalle
ML-DSA-44, ML-DSA-65 y ML-DSA-87 usan el platform provider cuando está disponible, pero la verificación de documentos cargados los habilita solo cuando el Catalog declara la extensión de desarrollador HotPDF PDF 2.0
Providers de firma
THotPDF.SignPDFWithPFX y las sobrecargas de HPDFCMSSignPDFStream respaldadas por PFX seleccionan RSA, ECDSA, Ed25519 o Ed448 desde la identidad PKCS#12 coincidente sin un callback de firma proporcionado por el llamador
Los escalares privados ECDSA se firman a través de Windows CNG y se devuelven como valores ECDSA DER estrictos, mientras que Ed25519 y Ed448 usan un libcrypto OpenSSL 3 opcional seleccionado por THPDFCMSSignOptions.OpenSSLLibraryPath o por la ruta de búsqueda de librerías 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 X.509 SubjectKeyIdentifier de forma independiente del provider 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 proporcionado por la aplicación, incluyendo refresh de tokens OAuth, descubrimiento de credenciales y cadenas de certificados, adquisición de SAD con hash fijado explícito, lotes multisign ordenados y acotados, signatures/signHash síncrono o asíncrono, polling acotado, timestamps RFC 3161, cancelación y replay idempotente direccionado por contenido
THPDFPKCS11SignatureProvider serializa las operaciones RSA y ECDSA contra una sesión PKCS#11 autenticada y un handle de clave privada propiedad del llamador, seleccionando mecanismos RSA PKCS#1 v1.5 específicos del digest, RSA-PSS o ECDSA crudo, sin exportar material de claves
THPDFWindowsKeyStorageSignatureProvider abre claves persistentes en el KSP de smart cards de Microsoft o en cualquier CNG key-storage provider con nombre, opcionalmente rechaza 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 apropiarse de él, lo que permite a las aplicaciones que ya gestionan la autenticación de smart cards, TPM o HSM de fabricante conservar el control del ciclo de vida
HPDFCMSBuildSignedDataWithProvider construye CMS detached a partir del digest seleccionado por THPDFCMSSignOptions.DigestAlgorithm, mientras que 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 provider o el tamaño de clave del certificado RSA, y luego contabiliza la forma estática exacta del CMS y las reservas dinámicas configuradas de timestamp o counter-signature
HPDFCMSSignPDFStreamWithProviderAutoSize y HPDFCMSSignPDFStreamWithExternalSignerAutoSize reconstruyen los placeholders unsigned de tamaño insuficiente antes de firmar; los reintentos posteriores a la firma requieren la capacidad del provider spcSafeSignRetry, y los callbacks de firmante externo nunca se repiten después de devolver una firma
Consulte el auto-dimensionado de placeholders CMS para las opciones de tamaño, los contratos de reconstrucción, la política de reintentos y el diagnóstico
Consulte el provider 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 digests, RFC 3161, Seed Value, provider 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 por curva, la codificación DER estricta y la validación del producer fail-before-provider
Contrato de solicitud del provider
THPDFSignatureProviderRequest transporta el algoritmo de firma y su OID, el OID del digest, el tipo de entrada de mensaje o digest, la longitud del salt PSS, la clave pública o certificado, el identificador de clave, el identificador de operación, la firma y el contexto de algoritmos
Un provider de firma devuelve spsValid con una firma no vacía, mientras que los providers de verificación usan spsValid o spsInvalid; los resultados no soportados, malformados, de error del provider y cancelados permanecen diferenciados