CSC Remote Signature Provider
THPDFCSCSignatureProvider implementa o CSC API v2 credentials/info, credentials/authorize, credentials/authorizeCheck, signatures/signHash, signatures/signPolling e signatures/timestamp sobre o contrato existente de THPDFSignatureProvider
Transporte e autorização
O provider nunca seleciona uma stack HTTP nem armazena refresh token, client secret, PIN ou OTP
THPDFCSCTransport recebe o método exato, a URL, a autorização bearer, o corpo JSON, a chave de idempotência estável, o número da tentativa, o identificador da operação e o orçamento de resposta, enquanto THPDFCSCAccessTokenCallback fornece e renova access tokens OAuth de vida curta
Quando um SAD é exigido, o provider obtém os metadados da credencial e a cadeia de certificados completa limitada, pede a THPDFCSCAuthenticationCallback valores de autenticação revisados, obtém um SAD e faz polling de um handle de autorização assíncrono quando necessário
Segurança de assinatura e replay
Sign aceita entrada de digest do pipeline de CMS, leva os OIDs de digest e de assinatura para signatures/signHash e emite parâmetros RSA-PSS codificados em DER quando exigido
SignHashBatch envia um lote ordenado de digests do mesmo algoritmo sob uma única autorização, fixa o SAD resultante à contagem, aos algoritmos, aos parâmetros e aos bytes de digest exatos, e preserva a ordem das requisições nos resultados síncronos e assíncronos
Uma chamada multi-digest é aceita apenas quando a contagem cabe tanto em MaxBatchSignatures quanto no valor multisign da credencial, e a resposta deve conter exatamente uma assinatura para cada digest solicitado
Requisições transitórias reutilizam um Idempotency-Key endereçado por conteúdo SHA-256 de comprimento fixo, enquanto o cache limitado de operações retorna cópias defensivas de um lote já concluído quando a mesma operação, credencial, parâmetros e digests ordenados são submetidos de novo
Uma tentativa de transporte que falhou retém um SAD autorizado automaticamente para uma retry exata, mas um lote diferente não pode consumir esse SAD e deve obter uma nova autorização
Orçamentos e cancelamento
THPDFCSCOptions.Default limita assinaturas de lote, bytes de resposta, assinaturas individuais, timestamps, contagem e bytes de cadeia de certificados, tentativas de retry, atrasos de Retry-After, tentativas de polling e operações em cache
Cancel é observado antes das chamadas de transporte, entre retries e durante esperas de polling em fatias curtas, e o identificador da operação também é passado ao transporte para que a aplicação possa cancelar a própria requisição HTTP em voo
Cadeias de certificados e timestamps
RefreshCredentialInfo valida e cacheia metadados de chave, algoritmo, autorização, SCAL, mult assinatura e cadeia de certificados sem assinar
GetCertificateChain retorna cópias defensivas de bytes adequadas à entrada de certificados do CMS, enquanto TimestampDigest requisita e decodifica um token RFC 3161 com um nonce opcional