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 пропускає перший сегмент
SecondStartЗміщення потоку, де починається другий хешований сегмент; зазвичай перший байт після діри /Contents підпису
SecondLengthКількість байтів, хешованих від SecondStart — напіввідкритий діапазон [SecondStart, SecondStart + SecondLength); 0 пропускає другий сегмент

Значення, що повертаються

Сирий 20-байтовий дайджест SHA-1, упакований у AnsiString, або порожній рядок, коли постачальника CryptoAPI чи об'єкт хешування не вдалося створити або крок хешування зазнав невдачі

Зауваження

Делегує спільному помічнику SHAStreamRange, який отримує контекст CryptoAPI PROV_RSA_AES, хешує CALG_SHA1 фрагментами до 8000 байтів та ігнорує кількість, повернену кожним читанням потоку; цей помічник не відхиляє від'ємні значення діапазонів, на відміну від варіантів 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