SHA1StreamRange

Kryptografi

Beskrivning

AnsiString

/ByteRangeDen hashade indatan är byteintervallet [0, FirstLength) följt av byteintervallet [SecondStart, SecondStart + SecondLength), vilket motsvarar PDF-signaturens /Contents-layout där

Syntax

Delphi

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

Parametrar

InputStröm att hasha; funktionen söker före varje segment, så strömpositionen vid anropet spelar ingen roll
FirstLengthAntal byte som hashas från strömposition 0, det halvöppna intervallet [0, FirstLength); 0 hoppar över första segmentet
SecondStartStrömoffset där det andra hashade segmentet börjar, normalt första byten efter signaturens /Contents-hål
SecondLengthAntal byte som hashas från SecondStart, det halvöppna intervallet [SecondStart, SecondStart + SecondLength); 0 hoppar över andra segmentet

Returvärden

Det råa 20 byte stora SHA-1-sammandraget packat i en AnsiString, eller en tom sträng när CryptoAPI-leverantören eller hashobjektet inte kan skapas eller ett hashsteg misslyckas

Anmärkningar

Delegerar till den gemensamma hjälparen SHAStreamRange, som skaffar en CryptoAPI-kontext av typen PROV_RSA_AES, hashar CALG_SHA1 i block om upp till 8000 byte och ignorerar returantalet från varje strömläsning; negativa intervallvärden avvisas inte av denna hjälpare, till skillnad från SHA-3-strömvarianterna, och SHA-1 behålls för äldre signaturinteroperabilitet

Exempel

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

Se även

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