SHA512StreamRange

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 SHA512StreamRange(Input: TStream; FirstLength, SecondStart, SecondLength: Int64): AnsiString;

Parametri

InputStream da sottoporre ad hashing; la funzione esegue il seek prima di ogni segmento, quindi la posizione dello stream all'ingresso non conta
FirstLengthNumero di byte sottoposti ad hashing dalla posizione 0 dello stream, l'intervallo semi-aperto [0, FirstLength); 0 salta il primo segmento
SecondStartOffset dello stream dove inizia il secondo segmento sottoposto ad hashing, normalmente il primo byte dopo il buco /Contents della firma
SecondLengthNumero di byte sottoposti ad hashing da SecondStart, l'intervallo semi-aperto [SecondStart, SecondStart + SecondLength); 0 salta il secondo segmento

Valori restituiti

Il digest SHA-512 raw di 64 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_SHA_512 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

Esempio

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

Vedere anche

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