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
| Input | Ström att hasha; funktionen söker före varje segment, så strömpositionen vid anropet spelar ingen roll |
|---|---|
| FirstLength | Antal byte som hashas från strömposition 0, det halvöppna intervallet [0, FirstLength); 0 hoppar över första segmentet |
| SecondStart | Strömoffset där det andra hashade segmentet börjar, normalt första byten efter signaturens /Contents-hål |
| SecondLength | Antal 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