SHA512StreamRange

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 SHA512StreamRange(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ý 64bajtový otisk SHA-512 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_SHA_512 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

Příklad

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

Viz také

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