SHA1StreamRange
Crittografia
Descrizione
AnsiString
/ByteRangeL'input sottoposto ad hashing è l'intervallo di byte [0, FirstLength) seguito dall'intervallo di byte [SecondStart, SecondStart + SecondLength), in corrispondenza del layout /Contents della firma PDF dove il buco
Sintassi
Delphi
Function SHA1StreamRange(Input: TStream; FirstLength, SecondStart, SecondLength: Int64): AnsiString;Parametri
| Input | Stream da sottoporre ad hashing; la funzione esegue il seek prima di ogni segmento, quindi la posizione dello stream all'ingresso non conta |
|---|---|
| FirstLength | Numero di byte sottoposti ad hashing dalla posizione 0 dello stream, l'intervallo semi-aperto [0, FirstLength); 0 salta il primo segmento |
| SecondStart | Offset dello stream dove inizia il secondo segmento sottoposto ad hashing, normalmente il primo byte dopo il buco /Contents della firma |
| SecondLength | Numero di byte sottoposti ad hashing da SecondStart, l'intervallo semi-aperto [SecondStart, SecondStart + SecondLength); 0 salta il secondo segmento |
Valori restituiti
Il digest SHA-1 raw di 20 byte compresso in una AnsiString, oppure una stringa vuota quando il provider CryptoAPI o l'oggetto hash non possono essere creati oppure un passaggio di hashing fallisce |
Osservazioni
Delega all'helper condiviso SHAStreamRange, che acquisisce un contesto CryptoAPI PROV_RSA_AES, calcola l'hash CALG_SHA1 in blocchi fino a 8000 byte e ignora il conteggio restituito da ogni lettura dello stream; i valori di intervallo negativi non vengono rifiutati da questo helper, a differenza delle varianti stream SHA-3, e SHA-1 è conservato per l'interoperabilità con firme legacy
Esempio
Digest:= SHA1StreamRange(FS, ByteRange[0], ByteRange[2], ByteRange[3]);Vedere anche
SHA256ByteArray, SHA384ByteArray, SHA512ByteArray, SHA3_256ByteArray, SHA3_384ByteArray, SHA3_512ByteArray, SHA256StreamRange, SHA384StreamRange, SHA512StreamRange, SHA3_256StreamRange, SHA3_384StreamRange, SHA3_512StreamRange, SHAKE256ByteArray, SHAKE256StreamRange