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 implementerar hashfunktionerna SHA-512 och SHA-384 över en delad kontext med 64-bitars ord; flaggan Is384 i kontexten väljer den trunkerade SHA-384-varianten när den initieras via Sha384Init
Det inkrementella API:et speglar FPdfSha256: initiera en kontext, mata in buffertar med Sha512Update och slutför till en 64 byte stor SHA-512-digest eller en 48 byte stor SHA-384-digest; Sha512Bytes och Sha384Bytes är hjälpfunktioner i ett steg över en bytearray
| Function | Description |
|---|---|
Sha512Init | Initierar en SHA-512-kontext |
Sha384Init | Initierar en SHA-384-kontext (sätter den interna flaggan Is384) |
Sha512Update | Matar en otypad buffer in i en öppen SHA-512- eller SHA-384-kontext |
Sha512Final | Slutför en SHA-512-kontext och returnerar den 64 byte stora digesten |
Sha384Final | Slutför en SHA-384-kontext och returnerar den 48 byte stora digesten |
Sha512Bytes | SHA-512-hash i ett steg av en bytearray |
Sha384Bytes | SHA-384-hash i ett steg av en bytearray |
| Type | Description |
|---|---|
TSha512Digest | 64 byte stor SHA-512-digest |
TSha384Digest | 48 byte stor SHA-384-digest |
TSha512Context | Delad inkrementell kontext för SHA-512 och SHA-384 |
TSha512Context med flaggan Is384 satt av Sha384InitSha..., till skillnad från namnen SHA256... enbart i versaler i FPdfSha256