SHA1StreamRange

Kryptografie

Popis

AnsiString

/ByteRangeHašovaným vstupem je bajtové rozsahy [0, FirstLength) následované rozsahem [SecondStart, SecondStart + SecondLength), což odpovídá rozložení /Contents podpisu PDF, kde musí být přeskočena díra

Syntaxe

Delphi

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

Parametry

InputStream k hašování; funkce se před každým segmentem přemístí, takže počáteční pozice streamu nezáleží
FirstLengthPočet bajtů hašovaných od pozice streamu 0, polouzavřený rozsah [0, FirstLength); 0 vynechá první segment
SecondStartPosun ve streamu, kde začíná druhý hašovaný segment, obvykle první bajt za dírou /Contents podpisu
SecondLengthPočet bajtů hašovaných od SecondStart, polouzavřený rozsah [SecondStart, SecondStart + SecondLength); 0 vynechá druhý segment

Návratové hodnoty

Surový 20bajtový otisk SHA-1 zabalený do AnsiString, nebo prázdný řetězec, když nelze vytvořit poskytovatele CryptoAPI ani hašovací objekt, případně když krok hašování selže

Poznámky

Deleguje na sdíleného pomocníka SHAStreamRange, který získá kontext CryptoAPI PROV_RSA_AES, hašuje CALG_SHA1 po blocích do 8000 bajtů a ignoruje počet vrácený každým čtením streamu; záporné hodnoty rozsahů tento pomocník nezamítá, na rozdíl od variant SHA-3 pro streamy, a SHA-1 zůstává zachováno kvůli interoperabilitě starších podpisů

Příklad

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

Viz také

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