Provider de assinatura remota CSC

THPDFCSCSignatureProvider implementa credentials/info, credentials/authorize, credentials/authorizeCheck, signatures/signHash, signatures/signPolling e signatures/timestamp da CSC API v2 sobre o contrato existente de THPDFSignatureProvider

Transporte e autorização

O provider nunca escolhe uma stack HTTP nem guarda um refresh token, um client secret, um PIN ou um OTP

THPDFCSCTransport recebe o método exato, o URL, a autorização bearer, o corpo JSON, a chave de idempotência estável, o número da tentativa, o identificador de operação e o orçamento de resposta, enquanto THPDFCSCAccessTokenCallback fornece e renova tokens de acesso OAuth de vida curta

Quando é exigido SAD, o provider obtém os metadados de credenciais e a cadeia completa limitada de certificados, pede a THPDFCSCAuthenticationCallback os valores de autenticação revistos, obtém um SAD e, quando necessário, consulta um handle de autorização assíncrono

Segurança de assinatura e replay

Sign aceita entrada de digest do pipeline CMS, transporta 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 dos pedidos nos resultados síncronos e assíncronos

Uma chamada multi-digest só é aceite quando a respetiva contagem cabe tanto em MaxBatchSignatures como no valor multisign da credencial, e a resposta tem de conter exatamente uma assinatura por cada digest pedido

Pedidos transitórios reutilizam um Idempotency-Key SHA-256 endereçado por conteúdo, de comprimento fixo, enquanto a cache limitada de operações devolve 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 falhada mantém um SAD autorizado automaticamente para um retry exato, mas um lote diferente não pode consumir esse SAD e tem de obter uma nova autorização

Orçamentos e cancelamento

THPDFCSCOptions.Default limita assinaturas em lote, bytes de resposta, assinaturas individuais, timestamps, contagem e bytes da cadeia de certificados, tentativas de retry, atrasos Retry-After, tentativas de polling e operações em cache

Cancel é observado antes das chamadas de transporte, entre retries e durante as esperas de polling em fatias curtas, e o identificador de operação também é passado ao transporte, para que a aplicação possa cancelar o respetivo pedido HTTP em curso

Cadeias de certificados e timestamps

RefreshCredentialInfo valida e coloca em cache metadados de chave, algoritmo, autorização, SCAL, multiassinatura e cadeia de certificados, sem assinar

GetCertificateChain devolve cópias defensivas de bytes, adequadas à entrada de certificados CMS, enquanto TimestampDigest pede e descodifica um token RFC 3161 com um nonce opcional

Providers de assinatura modernos