SHA1StreamRange
Kriptográfia
Leírás
AnsiString
/ByteRange típusba csomagoljaA kivonatolt bemenet a [0, FirstLength) bájttartomány, majd a [SecondStart, SecondStart + SecondLength) bájttartomány, ami megfelel a PDF /Contents aláírás-elrendezésnek, amelyben a
Szintaxis
Delphi
Function SHA1StreamRange(Input: TStream; FirstLength, SecondStart, SecondLength: Int64): AnsiString;Paraméterek
| Input | A kivonatolandó adatfolyam; a függvény minden szegmens előtt pozicionál, így a belépéskori adatfolyam-pozíció nem számít |
|---|---|
| FirstLength | A 0 adatfolyam-pozíciótól kivonatolt bájtok száma, azaz a [0, FirstLength) félnyílt tartomány; 0 esetén az első szegmens kihagyásra kerül |
| SecondStart | Az adatfolyam-offset, ahol a második kivonatolt szegmens kezdődik, rendszerint az első bájt az aláírás /Contents lyuka után |
| SecondLength | A SecondStart-tól kivonatolt bájtok száma, azaz a [SecondStart, SecondStart + SecondLength) félnyílt tartomány; 0 esetén a második szegmens kihagyásra kerül |
Visszatérési értékek
A nyers, 20 bájtos SHA-1 kivonat AnsiString típusba csomagolva, illetve üres karakterlánc, ha a CryptoAPI szolgáltató vagy a kivonatobjektum nem hozható létre, vagy egy kivonatolási lépés meghiúsul |
Megjegyzések
A megosztott SHAStreamRange segédfüggvényre épül, amely PROV_RSA_AES CryptoAPI kontextust szerez, CALG_SHA1 kivonatolást végez legfeljebb 8000 bájtos blokkokban, és figyelmen kívül hagyja az egyes adatfolyam-olvasások visszatérési darabszámát; a negatív tartományértékeket ez a segédfüggvény a SHA-3 adatfolyam-változatokkal ellentétben nem utasítja el, a SHA-1 pedig örökölt aláíráskompatibilitás miatt megmarad
Példa
Digest:= SHA1StreamRange(FS, ByteRange[0], ByteRange[2], ByteRange[3]);Lásd még
SHA256ByteArray, SHA384ByteArray, SHA512ByteArray, SHA3_256ByteArray, SHA3_384ByteArray, SHA3_512ByteArray, SHA256StreamRange, SHA384StreamRange, SHA512StreamRange, SHA3_256StreamRange, SHA3_384StreamRange, SHA3_512StreamRange, SHAKE256ByteArray, SHAKE256StreamRange