SHA1StreamRange

Criptografie

Descriere

AnsiString

/ByteRangeIntrarea prelucrată cu hash este intervalul de octeți [0, FirstLength) urmat de intervalul de octeți [SecondStart, SecondStart + SecondLength), corespunzând aranjamentului /Contents al semnăturii PDF, în care golul

Sintaxă

Delphi

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

Parametri

InputFluxul de prelucrat cu hash; funcția poziționează înainte de fiecare segment, deci poziția fluxului la intrare nu contează
FirstLengthNumărul de octeți prelucrați cu hash de la poziția 0 a fluxului, intervalul semideschis [0, FirstLength); 0 omite primul segment
SecondStartOffset în flux unde începe al doilea segment prelucrat cu hash, în mod normal primul octet după golul /Contents al semnăturii
SecondLengthNumărul de octeți prelucrați cu hash de la SecondStart, intervalul semideschis [SecondStart, SecondStart + SecondLength); 0 omite al doilea segment

Valori returnate

Digestul SHA-1 brut de 20 de octeți, împachetat într-un AnsiString, sau un șir gol când furnizorul CryptoAPI sau obiectul de hash nu poate fi creat ori un pas de hash eșuează

Observații

Delegă către helper-ul partajat SHAStreamRange, care obține un context CryptoAPI PROV_RSA_AES, prelucrează cu hash CALG_SHA1 în bucăți de până la 8000 de octeți și ignoră numărul returnat de fiecare citire din flux; valorile de interval negative nu sunt respinse de acest helper, spre deosebire de variantele SHA-3 pentru fluxuri, iar SHA-1 este păstrat pentru interoperabilitatea semnăturilor vechi

Exemplu

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

Vedeți și

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