CSC Uzak İmza Sağlayıcısı

THPDFCSCSignatureProvider, mevcut THPDFSignatureProvider sözleşmesi üzerinde CSC API v2'nin credentials/info, credentials/authorize, credentials/authorizeCheck, signatures/signHash, signatures/signPolling ve signatures/timestamp uçlarını gerçekleştirir

Transport ve yetkilendirme

Sağlayıcı hiçbir zaman bir HTTP stack seçmez; refresh token, client secret, PIN veya OTP saklamaz

THPDFCSCTransport tam olarak metodu, URL'yi, bearer yetkilendirmesini, JSON gövdesini, kararlı idempotency anahtarını, deneme numarasını, operasyon tanımlayıcısını ve yanıt bütçesini alır; THPDFCSCAccessTokenCallback ise kısa ömürlü OAuth access token'larını sağlar ve tazeler

SAD gerektiğinde sağlayıcı credential meta verisini ve eksiksiz sınırlanmış sertifika zincirini alır, incelenmiş kimlik doğrulama değerleri için THPDFCSCAuthenticationCallback'e başvurur, bir SAD edinir ve gerektiğinde asenkron yetkilendirme handle'ını poll'lar

İmzalama ve replay güvenliği

Sign, özet girdisini CMS pipeline'ından alır, özet ve imza OID'lerini signatures/signHash'e taşır ve gerektiğinde DER kodlu RSA-PSS parametreleri üretir

SignHashBatch, tek bir yetkilendirme altında aynı algoritmalı sıralı özet grubu gönderir; ortaya çıkan SAD'ı tam sayıya, algoritmalara, parametrelere ve özet baytlarına sabitler ve istek sırasını hem senkron hem asenkron sonuçlarda korur

Çoklu özet çağrısı, sayısı hem MaxBatchSignatures hem de credential'ın multisign değerine sığıyorsa kabul edilir; yanıt, istenen her özet için tam olarak bir imza içermelidir

Geçici istekler sabit uzunluklu, SHA-256 content-addressed bir Idempotency-Key yeniden kullanır; sınırlı operasyon önbelleği ise aynı operasyon, credential, parametreler ve sıralı özetler yeniden gönderildiğinde tamamlanmış grubun defensive kopyalarını döndürür

Başarısız bir transport denemesi, otomatik yetkilendirilmiş SAD'ı tam bir retry için saklar; ancak farklı bir grup o SAD'ı tüketemez ve yeni bir yetkilendirme almak zorundadır

Bütçeler ve iptal

THPDFCSCOptions.Default; grup imzalarını, yanıt baytlarını, tekil imzaları, timestamp'leri, sertifika zinciri sayısını ve baytlarını, retry denemelerini, Retry-After gecikmelerini, poll denemelerini ve önbellekteki operasyonları sınırlar

Cancel, transport çağrılarından önce, retry'lar arasında ve kısa dilimli poll beklemeleri sırasında gözlemlenir; operasyon tanımlayıcısı transport'a da geçirilir, böylece uygulama kendi in-flight HTTP isteğini iptal edebilir

Sertifika zincirleri ve timestamp'ler

RefreshCredentialInfo; anahtar, algoritma, yetkilendirme, SCAL, çoklu imza ve sertifika zinciri meta verisini imzalamadan doğrular ve önbelleğe alır

GetCertificateChain, CMS sertifika girdisine uygun defensive bayt kopyaları döndürür; TimestampDigest ise isteğe bağlı bir nonce ile tek bir RFC 3161 token'ı ister ve çözer

Modern İmza Sağlayıcıları