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 се задържа за съвместимост на legacy подписи

Пример

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