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

Modern Signature Providers