SHA1StreamRange

Cryptografie

Beschrijving

AnsiString

/ByteRangeDe gehashte invoer is het bytebereik [0, FirstLength) gevolgd door het bytebereik [SecondStart, SecondStart + SecondLength), overeenkomend met de /Contents-indeling van PDF-handtekeningen waarbij het

Syntaxis

Delphi

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

Syntaxis

InputTe hashen stream; de functie zoekt vóór elk segment, dus de streampostie bij binnenkomst is niet relevant
FirstLengthAantal bytes gehasht vanuit streampostie 0, het half-open bereik [0, FirstLength); 0 slaat het eerste segment over
SecondStartStreamoffset waar het tweede gehashte segment begint, normaal de eerste byte na het /Contents-gat van de handtekening
SecondLengthAantal bytes gehasht vanuit SecondStart, het half-open bereik [SecondStart, SecondStart + SecondLength); 0 slaat het tweede segment over

Retourwaarden

De rauwe 20-byte SHA-1-digest verpakt in een AnsiString, of een lege string wanneer de CryptoAPI-provider of het hashobject niet kan worden aangemaakt of een hashstap mislukt

Opmerkingen

Delegeert naar de gedeelde helper SHAStreamRange, die een PROV_RSA_AES-CryptoAPI-context aanschaft, CALG_SHA1 hasht in stukken van ten hoogste 8000 bytes en het terugkeeraantal van elke streamlezing negeert; negatieve bereikwaarden worden door deze helper niet afgewezen, anders dan bij de SHA-3-streamvarianten, en SHA-1 wordt behouden voor legacy-handtekeninginterop

Voorbeeld

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

Zie ook

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