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

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-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