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
| Input | Fluxul de prelucrat cu hash; funcția poziționează înainte de fiecare segment, deci poziția fluxului la intrare nu contează |
|---|---|
| FirstLength | Numărul de octeți prelucrați cu hash de la poziția 0 a fluxului, intervalul semideschis [0, FirstLength); 0 omite primul segment |
| SecondStart | Offset în flux unde începe al doilea segment prelucrat cu hash, în mod normal primul octet după golul /Contents al semnăturii |
| SecondLength | Numă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