HPDFCMSSignPDFStreamWithProvider

コールバック、リモート、ハードウェア、またはアプリケーション定義のプロバイダーを通じて、既存の PDF 署名プレースホルダーに署名します

宣言

function HPDFCMSSignPDFStreamWithProvider(InputStream, OutputStream: TStream;
  const CertificateDER: TBytes; Provider: THPDFSignatureProvider;
  const KeyIdentifier: AnsiString; const Options: THPDFCMSSignOptions;
  CancellationToken: THPDFCancellationToken): Boolean;

CancellationToken を取らないオーバーロードも同じ動作で、この関数は既存の CMS プレースホルダー容量チェックをそのまま維持します

InputStream には、署名フィールドが出力した /ByteRange と /Contents のプレースホルダーが含まれている必要があります

Options.DigestAlgorithm で、byte range、signed attribute、プロバイダーへのリクエスト、および任意のタイムスタンプに使う SHA-256、SHA-384、SHA-512、SHA3-256、SHA3-384、SHA3-512 のいずれかを選択します

この関数は上限付きの 256 KB バッファ経由でコピーし、固定幅のプレースホルダーを seek してパッチします。入力と出力にシーク可能な読み書き両用ストリームを共用でき、2 つ目の完全な PDF を保持することもありません

添付された PDF MAC が同じダイジェストを選んでいる場合、署名処理は共有のストリーミングスキャンで得た byte range のダイジェストを再利用します