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
| Input | Prúd na hashovanie; funkcia sa pred každým segmentom presunie, takže pozícia prúdu na vstupe nezáleží |
|---|---|
| FirstLength | Počet bajtov hashovaných od pozície 0 prúdu, polootvorený rozsah [0, FirstLength); 0 vynechá prvý segment |
| SecondStart | Posun v prúde, kde začína druhý hashovaný segment, zvyčajne prvý bajt za dierou /Contents podpisu |
| SecondLength | Poč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