SHA1StreamRange

Criptografía

Descripción

AnsiString

/ByteRangeLa entrada hasheada es el rango de bytes [0, FirstLength) seguido del rango de bytes [SecondStart, SecondStart + SecondLength), coincidiendo con la disposición /Contents de la firma PDF donde el hueco

Sintaxis

Delphi

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

Parámetros

InputStream a hashear; la función se posiciona antes de cada segmento, de modo que la posición del stream a la entrada no importa
FirstLengthNúmero de bytes hasheados desde la posición 0 del stream, el rango semiabierto [0, FirstLength); 0 omite el primer segmento
SecondStartDesplazamiento del stream donde comienza el segundo segmento hasheado, normalmente el primer byte después del hueco /Contents de la firma
SecondLengthNúmero de bytes hasheados desde SecondStart, el rango semiabierto [SecondStart, SecondStart + SecondLength); 0 omite el segundo segmento

Valores devueltos

El resumen SHA-1 bruto de 20 bytes empaquetado en un AnsiString, o una cadena vacía cuando el proveedor CryptoAPI o el objeto hash no pueden crearse o un paso del hash falla

Observaciones

Delega en el ayudante compartido SHAStreamRange, que adquiere un contexto CryptoAPI PROV_RSA_AES, hashea CALG_SHA1 en bloques de hasta 8000 bytes e ignora el recuento devuelto de cada lectura del stream; los valores de rango negativos no se rechazan en este ayudante, a diferencia de las variantes de stream SHA-3, y SHA-1 se conserva para la interoperabilidad de firmas heredadas

Ejemplo

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

Véase también

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