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
| 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ží, a stream nil vrátí prázdný řetězec |
|---|---|
| FirstLength | Poč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 |
| SecondStart | Posun 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 |
| SecondLength | Poč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