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 implémente les fonctions de hachage SHA-512 et SHA-384 sur un contexte partagé à mots 64 bits. L’indicateur Is384 du contexte sélectionne la variante SHA-384 tronquée lorsqu’il est initialisé via Sha384Init
L’API incrémentale reproduit FPdfSha256 : initialisez un contexte, alimentez les tampons avec Sha512Update, et finalisez en une empreinte SHA-512 de 64 octets ou une empreinte SHA-384 de 48 octets. Sha512Bytes et Sha384Bytes sont des assistants en un coup sur un tableau d’octets
| Function | Description |
|---|---|
Sha512Init | Initialise un contexte SHA-512 |
Sha384Init | Initialise un contexte SHA-384 (définit l’indicateur interne Is384) |
Sha512Update | Alimente un tampon non typé dans un contexte SHA-512 ou SHA-384 ouvert |
Sha512Final | Finalise un contexte SHA-512 et renvoie l’empreinte de 64 octets |
Sha384Final | Finalise un contexte SHA-384 et renvoie l’empreinte de 48 octets |
Sha512Bytes | Hachage SHA-512 en un coup d’un tableau d’octets |
Sha384Bytes | Hachage SHA-384 en un coup d’un tableau d’octets |
| Type | Description |
|---|---|
TSha512Digest | Empreinte SHA-512 de 64 octets |
TSha384Digest | Empreinte SHA-384 de 48 octets |
TSha512Context | Contexte incrémental partagé pour SHA-512 et SHA-384 |
TSha512Context avec l’indicateur Is384 défini par Sha384InitSha..., contrairement aux noms tout en majuscules SHA256... de FPdfSha256