SHA1StreamRange

Criptografia

Descrição

AnsiString

/ByteRangeA entrada com hash é o intervalo de bytes [0, FirstLength) seguido pelo intervalo de bytes [SecondStart, SecondStart + SecondLength), correspondendo ao layout /Contents da assinatura PDF em que o buraco de

Sintaxe

Delphi

Function SHA1StreamRange(Input: TStream; FirstLength, SecondStart, SecondLength: Int64): AnsiString;

Parâmetros

InputStream a ser submetido a hash; a função posiciona o cursor antes de cada segmento, de modo que a posição do stream na entrada não importa
FirstLengthQuantidade de bytes com hash a partir da posição 0 do stream, o intervalo semiaberto [0, FirstLength); 0 ignora o primeiro segmento
SecondStartOffset do stream onde o segundo segmento com hash começa, normalmente o primeiro byte após o buraco de /Contents da assinatura
SecondLengthQuantidade de bytes com hash a partir de SecondStart, o intervalo semiaberto [SecondStart, SecondStart + SecondLength); 0 ignora o segundo segmento

Valores de retorno

O digest SHA-1 bruto de 20 bytes empacotado em um AnsiString, ou uma string vazia quando o provedor CryptoAPI ou o objeto de hash não puder ser criado ou uma etapa de hash falhar

Observações

Delega ao auxiliar compartilhado SHAStreamRange, que adquire um contexto CryptoAPI PROV_RSA_AES, calcula o hash de CALG_SHA1 em blocos de até 8000 bytes e ignora a contagem de retorno de cada leitura do stream; valores de intervalo negativos não são rejeitados por este auxiliar, ao contrário das variantes de stream SHA-3, e o SHA-1 é mantido para interoperabilidade de assinaturas legadas

Exemplo

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

Consulte também

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