SHA1StreamRange
Kryptographie
Beschreibung
AnsiString
/ByteRangeDer gehashte 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 SHA1StreamRange(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 |
|---|---|
| FirstLength | Anzahl der ab Streamposition 0 gehashten Bytes, der halboffene Bereich [0, FirstLength); 0 überspringt das erste Segment |
| SecondStart | Stream-Offset, an dem das zweite gehashte Segment beginnt, normalerweise das erste Byte nach dem /Contents-Loch der Signatur |
| SecondLength | Anzahl der ab SecondStart gehashten Bytes, der halboffene Bereich [SecondStart, SecondStart + SecondLength); 0 überspringt das zweite Segment |
Rückgabewerte
Der rohe 20-Byte-SHA-1-Digest gepackt in einen AnsiString, oder eine leere Zeichenkette, wenn der CryptoAPI-Anbieter oder das Hash-Objekt nicht erstellt werden kann oder ein Hash-Schritt fehlschlägt |
Hinweise
Delegiert an den gemeinsamen SHAStreamRange-Helfer, der einen PROV_RSA_AES-CryptoAPI-Kontext anfordert, CALG_SHA1 in Blöcken von bis zu 8000 Bytes hasht und die Rückgabeanzahl jedes Stream-Lesevorgangs ignoriert; negative Bereichswerte werden von diesem Helfer nicht abgewiesen, anders als bei den SHA-3-Stream-Varianten, und SHA-1 wird für die Interoperabilität mit älteren Signaturen beibehalten
Beispiel
Digest:= SHA1StreamRange(FS, ByteRange[0], ByteRange[2], ByteRange[3]);Siehe auch
SHA256ByteArray, SHA384ByteArray, SHA512ByteArray, SHA3_256ByteArray, SHA3_384ByteArray, SHA3_512ByteArray, SHA256StreamRange, SHA384StreamRange, SHA512StreamRange, SHA3_256StreamRange, SHA3_384StreamRange, SHA3_512StreamRange, SHAKE256ByteArray, SHAKE256StreamRange