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. La marca Is384 del contexto selecciona la variante truncada SHA-384 cuando se inicializa a través de Sha384Init
La API incremental refleja FPdfSha256: se inicializa un contexto, se introducen búferes con Sha512Update y se finaliza a un resumen SHA-512 de 64 bytes o a un resumen SHA-384 de 48 bytes. Sha512Bytes y Sha384Bytes son ayudantes de un solo paso sobre una matriz de bytes
| Función | Descripción |
|---|---|
Sha512Init | Inicializa un contexto SHA-512 |
Sha384Init | Inicializa un contexto SHA-384 (activa la marca interna Is384) |
Sha512Update | Introduce un búfer sin tipo en 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 una matriz de bytes |
Sha384Bytes | Hash SHA-384 de un solo paso de una matriz de bytes |
| Tipo | Descripción |
|---|---|
TSha512Digest | Resumen SHA-512 de 64 bytes |
TSha384Digest | Resumen SHA-384 de 48 bytes |
TSha512Context | Contexto incremental compartido por SHA-512 y SHA-384 |
TSha512Context con la marca Is384 activada por Sha384InitSha..., a diferencia de los nombres en mayúsculas SHA256... de FPdfSha256