SHA3_256StreamRange
Kryptographie
Beschreibung
AnsiString
/ByteRangeDer absorbierte Eingabebestandteil ist der Bytebereich [0, FirstLength) gefolgt vom Bytebereich [SecondStart, SecondStart + SecondLength), passend zum /Contents-Layout der PDF-Signatur, bei dem das
Syntax
Delphi
Function SHA3_256StreamRange(Input: TStream; FirstLength, SecondStart, SecondLength: Int64): AnsiString;Parameter
| Input | Zu hashender Stream; die Funktion positioniert vor jedem Segment neu, sodass die Streamposition beim Eintritt unerheblich ist, und ein nil-Stream liefert eine leere Zeichenkette |
|---|---|
| FirstLength | Anzahl der ab Streamposition 0 absorbierten Bytes, der halboffene Bereich [0, FirstLength); 0 überspringt das erste Segment, und ein negativer Wert bricht mit einer leeren Zeichenkette ab |
| SecondStart | Stream-Offset, an dem das zweite absorbierte Segment beginnt, normalerweise das erste Byte nach dem /Contents-Loch der Signatur; ein negativer Wert bricht mit einer leeren Zeichenkette ab |
| SecondLength | Anzahl der ab SecondStart absorbierten Bytes, der halboffene Bereich [SecondStart, SecondStart + SecondLength); 0 überspringt das zweite Segment, und ein negativer Wert bricht mit einer leeren Zeichenkette ab |
Rückgabewerte
Der rohe 32-Byte-SHA3-256-Digest gepackt in einen AnsiString, oder eine leere Zeichenkette, wenn der Stream nil ist, ein Bereichswert negativ ist oder ein Lesevorgang weniger Bytes zurückgibt als angefordert |
Hinweise
Führt die integrierte FIPS-202-Keccak-Implementierung mit dem SHA-3-Domänensuffix und einer Rate von 136 Bytes aus und absorbiert in 64-KB-Blöcken; jeder Lesevorgang wird gegen die angeforderte Anzahl verifiziert, sodass ein abgeschnittener Stream sauber abbricht, was die SHA-2-Stream-Varianten nicht tun
Beispiel
Digest:= SHA3_256StreamRange(FS, ByteRange[0], ByteRange[2], ByteRange[3]);Siehe auch
SHA256ByteArray, SHA384ByteArray, SHA512ByteArray, SHA3_256ByteArray, SHA3_384ByteArray, SHA3_512ByteArray, SHA1StreamRange, SHA256StreamRange, SHA384StreamRange, SHA512StreamRange, SHA3_384StreamRange, SHA3_512StreamRange, SHAKE256ByteArray, SHAKE256StreamRange