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

InputZu hashender Stream; die Funktion positioniert vor jedem Segment neu, sodass die Streamposition beim Eintritt unerheblich ist
FirstLengthAnzahl der ab Streamposition 0 gehashten Bytes, der halboffene Bereich [0, FirstLength); 0 überspringt das erste Segment
SecondStartStream-Offset, an dem das zweite gehashte Segment beginnt, normalerweise das erste Byte nach dem /Contents-Loch der Signatur
SecondLengthAnzahl 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