SHA1StreamRange

Criptografía

Descripción

AnsiString

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

Sintaxis

Delphi

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

Parámetros

InputFlujo al que aplicar hash; la función se posiciona antes de cada segmento, de modo que la posición del flujo a la entrada no importa
FirstLengthNúmero de bytes con hash desde la posición 0 del flujo, el rango semiabierto [0, FirstLength); 0 omite el primer segmento
SecondStartDesplazamiento del flujo donde comienza el segundo segmento con hash, normalmente el primer byte después del hueco /Contents de la firma
SecondLengthNúmero de bytes con hash 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 no puede crearse el proveedor CryptoAPI o el objeto hash, o cuando falla un paso del hash

Observaciones

Delega en el ayudante compartido SHAStreamRange, que adquiere un contexto CryptoAPI PROV_RSA_AES, aplica hash CALG_SHA1 en bloques de hasta 8000 bytes e ignora el recuento devuelto de cada lectura de flujo; los valores de rango negativos no son rechazados por este ayudante, a diferencia de las variantes de flujo 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