TSha512Digest = array[0..63] of Byte;
TSha384Digest = array[0..47] of Byte;
TSha512Context = record
State: array[0..7] of UInt64;
CountLo: UInt64;
CountHi: UInt64;
Buffer: array[0..127] of Byte;
BufLen: Integer;
Is384: Boolean;
end;
procedure Sha512Init(out Ctx: TSha512Context);
procedure Sha384Init(out Ctx: TSha512Context);
procedure Sha512Update(var Ctx: TSha512Context; const Buf; BufLen: Integer);
procedure Sha512Final(var Ctx: TSha512Context; out Digest: TSha512Digest);
procedure Sha384Final(var Ctx: TSha512Context; out Digest: TSha384Digest);
function Sha512Bytes(const B: TBytes): TSha512Digest;
function Sha384Bytes(const B: TBytes): TSha384Digest;
FPdfSha512 implementa las funciones de hash SHA-512 y SHA-384 sobre un contexto compartido de palabras de 64 bits. El indicador Is384 del contexto selecciona la variante truncada SHA-384 cuando se inicializa mediante Sha384Init
La API incremental refleja FPdfSha256: inicialice un contexto, alimente búferes con Sha512Update y finalice hacia un resumen SHA-512 de 64 bytes o un resumen SHA-384 de 48 bytes. Sha512Bytes y Sha384Bytes son auxiliares de un solo paso sobre un arreglo de bytes
| Función | Descripción |
|---|---|
Sha512Init | Inicializa un contexto SHA-512 |
Sha384Init | Inicializa un contexto SHA-384 (establece el indicador interno Is384) |
Sha512Update | Alimenta un búfer sin tipo hacia un contexto SHA-512 o SHA-384 abierto |
Sha512Final | Finaliza un contexto SHA-512 y devuelve el resumen de 64 bytes |
Sha384Final | Finaliza un contexto SHA-384 y devuelve el resumen de 48 bytes |
Sha512Bytes | Hash SHA-512 de un solo paso de un arreglo de bytes |
Sha384Bytes | Hash SHA-384 de un solo paso de un arreglo de bytes |
| Tipo | Descripción |
|---|---|
TSha512Digest | Resumen SHA-512 de 64 bytes |
TSha384Digest | Resumen SHA-384 de 48 bytes |
TSha512Context | Contexto incremental compartido para SHA-512 y SHA-384 |
TSha512Context con el indicador Is384 establecido por Sha384InitSha..., a diferencia de los nombres en mayúsculas SHA256... de FPdfSha256