SHA256StreamRange

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 SHA256StreamRange(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-256 brut de 32 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_SHA_256 î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

Exemplu

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

Vedeți și

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