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 implementiert die SHA-512- und SHA-384-Hashfunktionen über einen gemeinsamen 64-Bit-Wort-Kontext. Das Is384-Flag im Kontext wählt die abgeschnittene SHA-384-Variante, wenn über Sha384Init initialisiert wird
Die inkrementelle API entspricht FPdfSha256: einen Kontext initialisieren, Puffer mit Sha512Update einspeisen und zu einem 64-Byte-SHA-512-Digest oder einem 48-Byte-SHA-384-Digest abschließen. Sha512Bytes und Sha384Bytes sind Ein-Schritt-Helfer über ein Byte-Array
| Funktion | Beschreibung |
|---|---|
Sha512Init | Initialisiert einen SHA-512-Kontext |
Sha384Init | Initialisiert einen SHA-384-Kontext (setzt das interne Is384-Flag) |
Sha512Update | Speist einen untypisierten Puffer in einen offenen SHA-512- oder SHA-384-Kontext ein |
Sha512Final | Schließt einen SHA-512-Kontext ab und liefert den 64-Byte-Digest |
Sha384Final | Schließt einen SHA-384-Kontext ab und liefert den 48-Byte-Digest |
Sha512Bytes | Ein-Schritt-SHA-512-Hash eines Byte-Arrays |
Sha384Bytes | Ein-Schritt-SHA-384-Hash eines Byte-Arrays |
| Typ | Beschreibung |
|---|---|
TSha512Digest | 64-Byte-SHA-512-Digest |
TSha384Digest | 48-Byte-SHA-384-Digest |
TSha512Context | Gemeinsamer inkrementeller Kontext für SHA-512 und SHA-384 |
TSha512Context erneut, wobei das Is384-Flag durch Sha384Init gesetzt wirdSha... und unterscheiden sich von den durchgehenden Großbuchstaben SHA256... in FPdfSha256