CSC Remote Signature Provider

THPDFCSCSignatureProvider implementa los endpoints CSC API v2 credentials/info, credentials/authorize, credentials/authorizeCheck, signatures/signHash, signatures/signPolling y signatures/timestamp sobre el contrato existente de THPDFSignatureProvider

Transporte y autorización

El provider nunca selecciona un stack HTTP ni almacena un refresh token, client secret, PIN u OTP

THPDFCSCTransport recibe el método exacto, la URL, la autorización bearer, el cuerpo JSON, el idempotency key estable, el número de intento, el identificador de operación y el presupuesto de respuesta, mientras que THPDFCSCAccessTokenCallback suministra y renueva access tokens OAuth de vida corta

Cuando se requiere SAD, el provider recupera los metadatos del credential y la cadena de certificados delimitada completa, pide a THPDFCSCAuthenticationCallback los valores de autenticación revisados, obtiene un SAD y, cuando hace falta, hace polling sobre un authorization handle asíncrono

Firma y seguridad ante reintentos

Sign acepta la entrada de digest del pipeline de CMS, lleva los OIDs de digest y de firma a signatures/signHash y emite parámetros RSA-PSS codificados en DER cuando se requieren

SignHashBatch envía un lote ordenado de digests del mismo algoritmo bajo una sola autorización, fija el SAD resultante al conteo, algoritmos, parámetros y bytes de digest exactos, y conserva el orden de la solicitud en los resultados síncronos y asíncronos

Una llamada multi-digest solo se acepta cuando su conteo cabe tanto en MaxBatchSignatures como en el valor multisign del credential, y la respuesta debe contener exactamente una firma por cada digest solicitado

Las solicitudes transitorias reutilizan un Idempotency-Key de longitud fija direccionado por contenido SHA-256, mientras que la caché de operaciones delimitada devuelve copias defensivas de un lote ya completado cuando se vuelve a enviar la misma operación, credencial, parámetros y digests ordenados

Un intento de transporte fallido retiene un SAD autorizado automáticamente para un reintento exacto, pero un lote distinto no puede consumir ese SAD y debe obtener una nueva autorización

Presupuestos y cancelación

THPDFCSCOptions.Default acota las firmas por lote, los bytes de respuesta, las firmas individuales, los timestamps, el conteo y los bytes de la cadena de certificados, los intentos de reintento, los delays de Retry-After, los intentos de polling y las operaciones cacheadas

Cancel se observa antes de las llamadas de transporte, entre reintentos y durante las esperas cortas de polling, y el identificador de operación también se pasa al transporte para que la aplicación pueda cancelar su propia petición HTTP en vuelo

Cadenas de certificados y timestamps

RefreshCredentialInfo valida y cachea los metadatos de clave, algoritmo, autorización, SCAL, multisignature y cadena de certificados sin firmar

GetCertificateChain devuelve copias defensivas de bytes aptas para la entrada de certificados del CMS, mientras que TimestampDigest solicita y decodifica un token RFC 3161 con un nonce opcional

Modern Signature Providers