SHA3_256StreamRange

Kryptografie

Popis

AnsiString

/ByteRangeVstup pohlcovaný hašem 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 SHA3_256StreamRange(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ží, a stream nil vrátí prázdný řetězec
FirstLengthPočet bajtů pohlcených od pozice streamu 0, polouzavřený rozsah [0, FirstLength); 0 vynechá první segment a záporná hodnota ukončí s prázdným řetězcem
SecondStartPosun ve streamu, kde začíná druhý pohlcovaný segment, obvykle první bajt za dírou /Contents podpisu; záporná hodnota ukončí s prázdným řetězcem
SecondLengthPočet bajtů pohlcených od SecondStart, polouzavřený rozsah [SecondStart, SecondStart + SecondLength); 0 vynechá druhý segment a záporná hodnota ukončí s prázdným řetězcem

Návratové hodnoty

Surový 32bajtový otisk SHA3-256 zabalený do AnsiString, nebo prázdný řetězec, když je stream nil, libovolná hodnota rozsahu je záporná nebo čtení vrátí méně bajtů, než bylo požadováno

Poznámky

Používá vestavěnou implementaci Keccak dle FIPS 202 se sufixem domény SHA-3 a rychlostí 136 bajtů a pohlcuje po blocích 64 KB; každé čtení se ověří proti požadovanému počtu, takže zkrácený stream skončí čistě, což varianty SHA-2 pro streamy nedělají

Příklad

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

Viz také

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