SHA1StreamRange

Kryptografia

Opis

AnsiString

/ByteRangeHaszowanym wejściem jest zakres bajtów [0, FirstLength), po którym następuje zakres bajtów [SecondStart, SecondStart + SecondLength), zgodnie z układem /Contents podpisu PDF, w którym lukę

Składnia

Delphi

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

Parametry

InputStrumień do zhaszowania; funkcja pozycjonuje przed każdym segmentem, więc pozycja strumienia wejściowego nie ma znaczenia
FirstLengthLiczba bajtów haszowanych od pozycji 0 strumienia, z półotwartego zakresu [0, FirstLength); 0 pomija pierwszy segment
SecondStartPrzesunięcie w strumieniu, od którego zaczyna się drugi haszowany segment, zwykle pierwszy bajt po luce /Contents podpisu
SecondLengthLiczba bajtów haszowanych od SecondStart, z półotwartego zakresu [SecondStart, SecondStart + SecondLength); 0 pomija drugi segment

Wartości zwracane

Surowy 20-bajtowy skrót SHA-1 spakowany do AnsiString albo pusty łańcuch, gdy nie można utworzyć dostawcy CryptoAPI ani obiektu skrótu albo gdy krok haszowania zawiedzie

Uwagi

Deleguje do wspólnego pomocnika SHAStreamRange, który pozyskuje kontekst CryptoAPI PROV_RSA_AES, haszuje CALG_SHA1 w porcjach do 8000 bajtów i ignoruje liczbę zwracaną przez każdy odczyt strumienia; ujemne wartości zakresu nie są przez ten pomocnik odrzucane, w przeciwieństwie do wariantów strumieniowych SHA-3, a SHA-1 jest zachowywany dla współpracy ze starszymi podpisami

Przykład

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

Zobacz również

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