SHA1StreamRange

暗号

説明

AnsiString

/ByteRange に詰めて返しますハッシュ対象の入力はバイト範囲 [0, FirstLength) に続くバイト範囲 [SecondStart, SecondStart + SecondLength) で、/Contents の穴をスキップする必要がある PDF 署名の

構文

Delphi

Function SHA1StreamRange(Input: TStream; FirstLength, SecondStart, SecondLength: Int64): AnsiString;

パラメータ

Inputハッシュ対象のストリーム。各セグメントの前にシークするため、呼び出し時のストリーム位置は問いません
FirstLengthストリーム位置 0 からハッシュするバイト数。半開区間 [0, FirstLength)。0 で最初のセグメントをスキップします
SecondStart2 番目のハッシュ対象セグメントが始まるストリームオフセット。通常は署名の /Contents の穴の直後の最初のバイトです
SecondLengthSecondStart からハッシュするバイト数。半開区間 [SecondStart, SecondStart + SecondLength)。0 で 2 番目のセグメントをスキップします

戻り値

AnsiString に詰められた生の 20 バイト SHA-1 ダイジェスト。CryptoAPI プロバイダやハッシュオブジェクトを生成できないかハッシュステップが失敗した場合は空の文字列

備考

共通の SHAStreamRange ヘルパーに委譲します。このヘルパーは PROV_RSA_AES の CryptoAPI コンテキストを取得し、最大 8000 バイトのチャンクで CALG_SHA1 をハッシュし、各ストリーム読み取りの戻り件数を無視します。負の範囲値は SHA-3 ストリーム版と異なりこのヘルパーでは拒否されず、SHA-1 はレガシー署名の相互運用のために維持されています

Digest:= SHA1StreamRange(FS, ByteRange[0], ByteRange[2], ByteRange[3]);

関連項目

SHA256ByteArray, SHA384ByteArray, SHA512ByteArray, SHA3_256ByteArray, SHA3_384ByteArray, SHA3_512ByteArray, SHA256StreamRange, SHA384StreamRange, SHA512StreamRange, SHA3_256StreamRange, SHA3_384StreamRange, SHA3_512StreamRange, SHAKE256ByteArray, SHAKE256StreamRange