CSC リモート署名プロバイダー
THPDFCSCSignatureProvider は、既存の THPDFSignatureProvider コントラクト上で CSC API v2 の credentials/info、credentials/authorize、credentials/authorizeCheck、signatures/signHash、signatures/signPolling、signatures/timestamp を実装します
トランスポートと認可
プロバイダーは HTTP スタックを選択せず、更新トークン、クライアントシークレット、PIN、OTP を保存しません
THPDFCSCTransport は、正確なメソッド、URL、ベアラー認可、JSON 本文、安定した冪等性キー、試行回数、操作識別子、レスポンス予算を受け取り、THPDFCSCAccessTokenCallback は短命の OAuth アクセストークンを供給し更新します
SAD が必要な場合、プロバイダーは資格情報メタデータと完全な境界付き証明書チェーンを取得し、THPDFCSCAuthenticationCallback にレビュー済みの認証値を求め、SAD を取得し、必要に応じて非同期認可ハンドルをポーリングします
署名と再生の安全性
Sign は CMS パイプラインからダイジェスト入力を受け入れ、ダイジェストと署名 OID を signatures/signHash へ引き回し、必要に応じて DER エンコードした RSA-PSS パラメータを出力します
SignHashBatch は 1 つの認可の下で、同一アルゴリズムの順序付きダイジェストバッチを送信し、結果の SAD を正確な件数・アルゴリズム・パラメータ・ダイジェストバイトに固定して、同期 / 非同期のどちらの結果でもリクエスト順を保持します
マルチダイジェスト呼び出しは、その件数が MaxBatchSignatures と資格情報の multisign 値の両方に収まる場合にだけ受け入れられます。応答には、要求されたすべてのダイジェストに対して正確に 1 つの署名が含まれていなければなりません
一時的な要求は、固定長の SHA-256 コンテンツアドレス方式の Idempotency-Key を再利用します。上限付きの操作キャッシュは、同じ操作・資格情報・パラメータ・順序付きダイジェストが再提出された場合、完了済みバッチの防御コピーを返します
転送の失敗後も、自動認可された SAD が正確な再試行のために保持されます。ただし別のバッチがその SAD を消費することはできず、新しい認可を取得しなければなりません
予算とキャンセル
THPDFCSCOptions.Default は、レスポンスバイト、署名、タイムスタンプ、証明書チェーン数とバイト、再試行回数、Retry-After 遅延、ポーリング回数、キャッシュ済み操作を制限します
Cancel は、トランスポート呼び出しの前、再試行の間、短いスライスのポーリング待機中に観測され、操作識別子もトランスポートに渡されるため、アプリケーションは進行中の HTTP リクエストを独自にキャンセルできます
証明書チェーンとタイムスタンプ
RefreshCredentialInfo は、署名することなくキー、アルゴリズム、認可、SCAL、マルチ署名、証明書チェーンメタデータを検証しキャッシュします
GetCertificateChain は CMS 証明書入力に適した防御的なバイトコピーを返し、TimestampDigest は任意の nonce 付きの 1 つの RFC 3161 トークンを要求しデコードします