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 トークンを要求しデコードします

Modern Signature Providers