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 のダイジェストを再利用します