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
| Input | Stream k hašování; funkce se před každým segmentem přemístí, takže počáteční pozice streamu nezáleží |
|---|---|
| FirstLength | Počet bajtů hašovaných od pozice streamu 0, polouzavřený rozsah [0, FirstLength); 0 vynechá první segment |
| SecondStart | Posun ve streamu, kde začíná druhý hašovaný segment, obvykle první bajt za dírou /Contents podpisu |
| SecondLength | Poč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