SHA1StreamRange

Kryptografia

Popis

AnsiString

/ByteRangeHashovaný vstup tvorí rozsah bajtov [0, FirstLength) nasledovaný rozsahom bajtov [SecondStart, SecondStart + SecondLength), čo zodpovedá rozloženiu /Contents podpisu PDF, kde je potrebné preskočiť dieru

Syntax

Delphi

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

Parametre

InputPrúd na hashovanie; funkcia sa pred každým segmentom presunie, takže pozícia prúdu na vstupe nezáleží
FirstLengthPočet bajtov hashovaných od pozície 0 prúdu, polootvorený rozsah [0, FirstLength); 0 vynechá prvý segment
SecondStartPosun v prúde, kde začína druhý hashovaný segment, zvyčajne prvý bajt za dierou /Contents podpisu
SecondLengthPočet bajtov hashovaných od SecondStart, polootvorený rozsah [SecondStart, SecondStart + SecondLength); 0 vynechá druhý segment

Návratové hodnoty

Surový 20-bajtový otlačok SHA-1 zabalený do AnsiString, alebo prázdny reťazec, keď nie je možné vytvoriť poskytovateľa CryptoAPI ani hash objekt alebo keď zlyhá krok hashovania

Poznámky

Deleguje na zdieľaného pomocníka SHAStreamRange, ktorý získa kontext CryptoAPI PROV_RSA_AES, hashuje CALG_SHA1 v blokoch po najviac 8000 bajtov a ignoruje počet vrátený každým čítaním prúdu; záporné hodnoty rozsahov tento pomocník nezamietne, na rozdiel od SHA-3 variantov pre prúdy, a SHA-1 sa zachováva kvôli spolupráci so staršími podpismi

Príklad

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

Pozri tiež

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