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 在共用的 64 位元字組上下文上實作 SHA-512 與 SHA-384 雜湊函式。透過 Sha384Init 初始化時,上下文中的 Is384 旗標會選擇截斷的 SHA-384 變體
遞增 API 與 FPdfSha256 對應:初始化上下文、以 Sha512Update 饋入緩衝區,再結束為 64 位元組 SHA-512 摘要或 48 位元組 SHA-384 摘要。Sha512Bytes 與 Sha384Bytes 是針對位元組陣列的一次性輔助函式
| Function | Description |
|---|---|
Sha512Init | 初始化 SHA-512 上下文 |
Sha384Init | 初始化 SHA-384 上下文(設定內部 Is384 旗標) |
Sha512Update | 將不具型別的緩衝區饋入開啟中的 SHA-512 或 SHA-384 上下文 |
Sha512Final | 結束 SHA-512 上下文並傳回 64 位元組摘要 |
Sha384Final | 結束 SHA-384 上下文並傳回 48 位元組摘要 |
Sha512Bytes | 對位元組陣列做一次性 SHA-512 雜湊 |
Sha384Bytes | 對位元組陣列做一次性 SHA-384 雜湊 |
| Type | Description |
|---|---|
TSha512Digest | 64 位元組 SHA-512 摘要 |
TSha384Digest | 48 位元組 SHA-384 摘要 |
TSha512Context | SHA-512 與 SHA-384 共用的遞增上下文 |
TSha512Context,由 Sha384Init 設定 Is384 旗標Sha...,與 FPdfSha256 中全大寫的 SHA256... 名稱不同