SHA3_256StreamRange

Kryptografi

Beskrivelse

AnsiString

/ByteRangeDet absorberede input er byteintervallet [0, FirstLength) efterfulgt af byteintervallet [SecondStart, SecondStart + SecondLength), hvilket matcher PDF-signaturens /Contents-layout, hvor

Syntaks

Delphi

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

Parametre

InputStream, der skal hashes; funktionen seeker før hvert segment, så streamens position ved kald ikke betyder noget, og en nil-stream giver en tom streng
FirstLengthAntal bytes absorberet fra streamposition 0, det halvåbne interval [0, FirstLength); 0 udelader det første segment, og en negativ værdi afbryder med en tom streng
SecondStartStreamforskydning, hvor det andet absorberede segment begynder, normalt den første byte efter signaturens /Contents-hul; en negativ værdi afbryder med en tom streng
SecondLengthAntal bytes absorberet fra SecondStart, det halvåbne interval [SecondStart, SecondStart + SecondLength); 0 udelader det andet segment, og en negativ værdi afbryder med en tom streng

Returværdier

Den rå 32-byte SHA3-256-digest pakket ind i en AnsiString eller en tom streng, når streamen er nil, en intervalværdi er negativ, eller en læsning returnerer færre bytes end ønsket

Bemærkninger

Kører den indbyggede FIPS 202 Keccak-implementering med SHA-3-domænesuffikset og en rate på 136 bytes og absorberer i 64 KB-blokke; hver læsning verificeres mod det ønskede antal, så en afkortet stream afbryder rent, hvilket SHA-2-streamvarianterne ikke gør

Eksempel

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

Se også

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