Fournisseur de signature distante CSC
THPDFCSCSignatureProvider implémente les API CSC v2 credentials/info, credentials/authorize, credentials/authorizeCheck, signatures/signHash, signatures/signPolling et signatures/timestamp conformément au contrat existant THPDFSignatureProvider
Transport et autorisation
Le fournisseur ne choisit jamais de pile HTTP et ne stocke aucun jeton d’actualisation, secret client, PIN ou OTP
THPDFCSCTransport reçoit la méthode, l’URL, l’autorisation Bearer, le corps JSON, la clé d’idempotence stable, le numéro de tentative, l’identifiant d’opération et le budget de réponse exacts, tandis que THPDFCSCAccessTokenCallback fournit et actualise les jetons d’accès OAuth de courte durée
Lorsqu’un SAD est requis, le fournisseur récupère les métadonnées d’identifiant et la chaîne complète de certificats bornée, demande à THPDFCSCAuthenticationCallback des valeurs d’authentification examinées, obtient un SAD et interroge, si nécessaire, un descripteur d’autorisation asynchrone
Signature et sûreté de rejeu
Sign accepte l’empreinte de la chaîne CMS, transmet l’empreinte et les OID de signature à signatures/signHash et émet, si nécessaire, les paramètres RSA-PSS encodés DER
Les réponses synchrones renvoient immédiatement une signature décodée, tandis que les réponses asynchrones conservent le responseID opaque avant l’interrogation
Un appel multi-condensés n’est accepté que si son nombre tient à la fois dans MaxBatchSignatures et dans la valeur multisign du certificat, et la réponse doit contenir exactement une signature par condensé demandé
Les requêtes transitoires réutilisent une même Idempotency-Key dérivée de l’opération et le cache d’opérations borné renvoie une signature déjà terminée lorsque la même opération, le même identifiant, algorithme et condensat sont soumis à nouveau
Un échec de transport conserve un SAD automatiquement autorisé pour une reprise à l’identique, mais un lot différent ne peut pas consommer ce SAD et doit obtenir une nouvelle autorisation
Budgets et annulation
THPDFCSCOptions.Default borne les octets de réponse, signatures, horodatages, le nombre et les octets de chaînes de certificats, les tentatives, délais Retry-After, interrogations et opérations mises en cache
Cancel est vérifié avant les appels de transport, entre les tentatives et durant les attentes d’interrogation découpées, et l’identifiant d’opération est aussi transmis au transport afin qu’une application puisse annuler sa propre requête HTTP en cours
Chaînes de certificats et horodatages
RefreshCredentialInfo valide et met en cache les métadonnées de clé, algorithme, autorisation, SCAL, multisignature et chaîne de certificats sans signer
GetCertificateChain renvoie des copies défensives d’octets adaptées à l’entrée de certificats CMS, tandis que TimestampDigest demande et décode un jeton RFC 3161 avec nonce facultatif