Provider di Firma Remota CSC

THPDFCSCSignatureProvider implementa CSC API v2 credentials/info, credentials/authorize, credentials/authorizeCheck, signatures/signHash, signatures/signPolling e signatures/timestampsul contratto THPDFSignatureProvider esistente

Trasporto e autorizzazione

Il provider non seleziona mai uno stack HTTP né memorizza un token di refresh, un segreto client, un PIN o un OTP

THPDFCSCTransport riceve il metodo esatto, l'URL, l'autorizzazione bearer, il corpo JSON, la chiave di idempotenza stabile, il numero di tentativo, l'identificatore di operazione e il budget di risposta, mentre THPDFCSCAccessTokenCallback fornisce e aggiorna i token di accesso OAuth a breve scadenza

Quando è richiesto il SAD, il provider recupera i metadati delle credenziali e la catena di certificati completa delimitata, chiede a THPDFCSCAuthenticationCallback i valori di autenticazione rivisti, ottiene un SAD e interroga un handle di autorizzazione asincrono quando necessario

Sicurezza di firma e riproducibilità

Sign accetta l'input digest dalla pipeline CMS, porta gli OID di digest e firma in signatures/signHash ed emette i parametri RSA-PSS codificati DER quando richiesto

responseID opaco prima dell'interrogazione

Una chiamata multi-digest viene accettata solo quando il suo conteggio sta sia in MaxBatchSignatures sia nel multisign richiesto dalle credenziali, e la risposta deve contenere esattamente una firma per ogni digest richiesto

Le richieste transitorie riusano un Idempotency-Key, mentre la cache limitata delle operazioni restituisce copie difensive di un batch già completato quando la stessa operazione, credenziale, parametri e digest ordinati vengono presentati di nuovo

Un tentativo di trasporto fallito conserva un SAD autorizzato automaticamente per un retry esatto, ma un batch diverso non può consumare quel SAD e deve ottenere una nuova autorizzazione

Budget e annullamento

THPDFCSCOptions.Default delimita i byte di risposta, le firme, i timestamp, il conteggio e i byte della catena di certificati, i tentativi, i ritardi Retry-After, i tentativi di interrogazione e le operazioni memorizzate

Cancel viene osservato prima delle chiamate di trasporto, tra i tentativi e durante le attese di interrogazione a fette brevi, e l'identificatore di operazione viene passato anche al trasporto, così che un'applicazione possa cancellare la propria richiesta HTTP in volo

Catene di certificati e timestamp

RefreshCredentialInfo valida e memorizza nella cache i metadati di chiave, algoritmo, autorizzazione, SCAL, multisignature e catena di certificati senza firmare

GetCertificateChain restituisce copie di byte difensive adatte all'input dei certificati CMS, mentre TimestampDigest richiede e decodifica un token RFC 3161 con un nonce facoltativo

Modern Signature Providers