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